diff --git a/examples/producer/dummy-data-producer/dummy_data_producer.cpp b/examples/producer/dummy-data-producer/dummy_data_producer.cpp index 658ce992e758ee664852e7a3046a6ae3fb0b5d96..c7bae8553d6b740df188573d851196d2089ba107 100644 --- a/examples/producer/dummy-data-producer/dummy_data_producer.cpp +++ b/examples/producer/dummy-data-producer/dummy_data_producer.cpp @@ -28,7 +28,7 @@ bool SendDummyData(hidra2::Producer* producer, size_t number_of_byte, uint64_t i auto buffer = std::unique_ptr<uint8_t>(new uint8_t[number_of_byte]); for(uint64_t i = 0; i < iterations; i++) { - std::cout << "Send file " << i + 1 << "/" << iterations << std::endl; +// std::cerr << "Send file " << i + 1 << "/" << iterations << std::endl; auto err = producer->Send(i, buffer.get(), number_of_byte); @@ -36,7 +36,7 @@ bool SendDummyData(hidra2::Producer* producer, size_t number_of_byte, uint64_t i std::cerr << "File was not successfully send: " << err << std::endl; return false; } else { - std::cout << "File was successfully send." << std::endl; +// std::cerr << "File was successfully send." << std::endl; } } @@ -50,7 +50,7 @@ int main (int argc, char* argv[]) { std::tie(receiver_address, number_of_kbytes, iterations) = ProcessCommandArguments(argc, argv); std::cout << "receiver_address: " << receiver_address << std::endl - << "number_of_kbytes: " << number_of_kbytes << std::endl + << "Package size: " << number_of_kbytes << "k" << std::endl << "iterations: " << iterations << std::endl << std::endl; @@ -68,10 +68,10 @@ int main (int argc, char* argv[]) { } high_resolution_clock::time_point t2 = high_resolution_clock::now(); double duration_sec = std::chrono::duration_cast<std::chrono::milliseconds>( t2 - t1 ).count() / 1000.0; - double size_gb = double(number_of_kbytes) * iterations / 1024.0 / 1024.0; + double size_gb = double(number_of_kbytes) * iterations / 1024.0 / 1024.0 * 8.0; double rate = iterations / duration_sec; std::cout << "Rate: " << rate << " Hz" << std::endl; - std::cout << "Bandwidth " << size_gb / duration_sec << " GB/s" << std::endl; + std::cout << "Bandwidth " << size_gb / duration_sec << " Gbit/s" << std::endl; return EXIT_SUCCESS; } diff --git a/receiver/unittests/mock_receiver_config.cpp b/receiver/unittests/mock_receiver_config.cpp index 3a49bfdd5bdbf7056a966f73cf627aa67b431e65..7819fe13a934464ce8ddd2fbbb8f8abd90d7403c 100644 --- a/receiver/unittests/mock_receiver_config.cpp +++ b/receiver/unittests/mock_receiver_config.cpp @@ -18,7 +18,7 @@ Error SetReceiverConfig (const ReceiverConfig& config) { auto config_string = std::string("{\"MonitorDbAddress\":") + "\"" + config.monitor_db_uri + "\""; config_string += "," + std::string("\"MonitorDbName\":") + "\"" + config.monitor_db_name + "\""; config_string += "," + std::string("\"ListenPort\":") + std::to_string(config.listen_port); - config_string += "," + std::string("\"WriteToDisk\":") + (config.write_to_disk?"true":"false"); + config_string += "," + std::string("\"WriteToDisk\":") + (config.write_to_disk ? "true" : "false"); config_string += "}"; EXPECT_CALL(mock_io, ReadFileToString_t("fname", _)).WillOnce( diff --git a/tests/manual/performance_producer_receiver/receiver.json b/tests/manual/performance_producer_receiver/receiver.json new file mode 100644 index 0000000000000000000000000000000000000000..e23a556d1cd5a8c03ce0c32b37b7b73161bfa89d --- /dev/null +++ b/tests/manual/performance_producer_receiver/receiver.json @@ -0,0 +1,6 @@ +{ + "MonitorDbAddress":"localhost:8086", + "MonitorDbName": "db_test", + "ListenPort":4200, + "WriteToDisk":true +} \ No newline at end of file diff --git a/tests/manual/performance_producer_receiver/settings_tmp.json b/tests/manual/performance_producer_receiver/settings_tmp.json new file mode 100644 index 0000000000000000000000000000000000000000..35b3649bcb182f9b0121d9e85cac59e9c710e679 --- /dev/null +++ b/tests/manual/performance_producer_receiver/settings_tmp.json @@ -0,0 +1,6 @@ +{ + "MonitorDbAddress": "zitpcx27016:8086", + "MonitorDbName": "db_test", + "ListenPort": 4201, + "WriteToDisk": false +} diff --git a/tests/manual/performance_producer_receiver/test.sh b/tests/manual/performance_producer_receiver/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..317f32d77331e639f2d1ed564fd5ba4fc31aa70c --- /dev/null +++ b/tests/manual/performance_producer_receiver/test.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +set -e + +# starts receiver on $service_node +# runs producer with various file sizes from $worker_node and measures performance + +# a working directory +service_node=max-wgs +service_ip=`resolveip -s ${service_node}` +service_port=4201 + +monitor_node=zitpcx27016 +monitor_port=8086 + +worker_node=max-display +#worker_node=max-wgs + +worker_dir=~/producer_tests +service_dir=/gpfs/petra3/scratch/yakubov/receiver_tests + +ssh ${monitor_node} influx -execute \"create database db_test\" + +#ssh ${monitor_node} docker run -d -p 8086 -p 8086 --name influxdb influxdb + +ssh ${service_node} mkdir -p ${service_dir} +ssh ${service_node} mkdir -p ${service_dir}/files +ssh ${worker_node} mkdir -p ${worker_dir} + +scp ../../../cmake-build-release/receiver/receiver ${service_node}:${service_dir} +scp ../../../cmake-build-release/examples/producer/dummy-data-producer/dummy-data-producer ${worker_node}:${worker_dir} + + +function do_work { +cat receiver.json | + jq "to_entries | + map(if .key == \"MonitorDbAddress\" + then . + {value:\"${monitor_node}:${monitor_port}\"} + elif .key == \"ListenPort\" + then . + {value:${service_port}} + elif .key == \"WriteToDisk\" + then . + {value:$1} + else . + end + ) | + from_entries" > settings_tmp.json +scp settings_tmp.json ${service_node}:${service_dir}/settings.json +ssh ${service_node} "bash -c 'cd ${service_dir}; nohup ./receiver settings.json &> ${service_dir}/receiver.log &'" +sleep 0.3 +for size in 100 1000 10000 +do +echo =================================================================== +ssh ${worker_node} ${worker_dir}/dummy-data-producer ${service_ip}:${service_port} ${size} 1000 +ssh ${service_node} rm -f ${service_dir}/files/* +done +ssh ${service_node} killall receiver +} + +echo +echo "With write to disk:" +do_work true + +echo +echo "Without write to disk:" +do_work false + + +#rm settings_tmp.json +#ssh ${service_node} docker rm -f influxdb