Skip to content
Snippets Groups Projects
Commit a342abb3 authored by Sergey Yakubov's avatar Sergey Yakubov
Browse files

added manaul performance test for producer-receiver

parent 77599a3f
No related branches found
No related tags found
No related merge requests found
......@@ -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;
}
......
......@@ -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(
......
{
"MonitorDbAddress":"localhost:8086",
"MonitorDbName": "db_test",
"ListenPort":4200,
"WriteToDisk":true
}
\ No newline at end of file
{
"MonitorDbAddress": "zitpcx27016:8086",
"MonitorDbName": "db_test",
"ListenPort": 4201,
"WriteToDisk": false
}
#!/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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment