From 80e8e7de786f565f912309d9a546be91f68c7373 Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Tue, 7 Jan 2020 14:26:29 -0600 Subject: [PATCH 01/13] add UDP_STREAM and send size flags --- .../linux_benchmarks/netperf_benchmark.py | 94 +++++++++++++++---- 1 file changed, 76 insertions(+), 18 deletions(-) diff --git a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py index 960460b6f7..5eab3c7cc2 100644 --- a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py @@ -65,8 +65,12 @@ flags.DEFINE_integer('netperf_thinktime_run_length', 0, 'The number of contiguous numbers to sum at a time in the ' 'thinktime array.') +flags.DEFINE_integer('netperf_udp_stream_send_size_in_bytes', 1024, + 'Send size to use for UDP_STREAM tests (netperf -m flag)') +flags.DEFINE_integer('netperf_tcp_stream_send_size_in_bytes', 131072, + 'Send size to use for TCP_STREAM tests (netperf -m flag)') -ALL_BENCHMARKS = ['TCP_RR', 'TCP_CRR', 'TCP_STREAM', 'UDP_RR'] +ALL_BENCHMARKS = ['TCP_RR', 'TCP_CRR', 'TCP_STREAM', 'UDP_RR', 'UDP_STREAM'] flags.DEFINE_list('netperf_benchmarks', ALL_BENCHMARKS, 'The netperf benchmark(s) to run.') flags.register_validator( @@ -356,7 +360,7 @@ def RunNetperf(vm, benchmark_name, server_ip, num_streams): enable_latency_histograms = FLAGS.netperf_enable_histograms or num_streams > 1 # Throughput benchmarks don't have latency histograms enable_latency_histograms = enable_latency_histograms and \ - benchmark_name != 'TCP_STREAM' + (benchmark_name != 'TCP_STREAM' and benchmark_name != 'UDP_STREAM') # Flags: # -o specifies keys to include in CSV output. # -j keeps additional latency numbers @@ -367,17 +371,76 @@ def RunNetperf(vm, benchmark_name, server_ip, num_streams): confidence = ('-I 99,5 -i {0},3'.format(FLAGS.netperf_max_iter) if FLAGS.netperf_max_iter else '') verbosity = '-v2 ' if enable_latency_histograms else '' - netperf_cmd = ('{netperf_path} -p {{command_port}} -j {verbosity} ' - '-t {benchmark_name} -H {server_ip} -l {length} {confidence}' - ' -- ' - '-P ,{{data_port}} ' - '-o {output_selector}').format( - netperf_path=netperf.NETPERF_PATH, - benchmark_name=benchmark_name, - server_ip=server_ip, - length=FLAGS.netperf_test_length, - output_selector=OUTPUT_SELECTOR, - confidence=confidence, verbosity=verbosity) + + netperf_cmd = "" + + remote_cmd_timeout = \ + FLAGS.netperf_test_length * (FLAGS.netperf_max_iter or 1) + 300 + + metadata = {'netperf_test_length': FLAGS.netperf_test_length, + 'sending_thread_count': num_streams, + 'max_iter': FLAGS.netperf_max_iter or 1} + + if benchmark_name.upper() == 'UDP_STREAM': + netperf_cmd = ('{netperf_path} -p {{command_port}} -j {verbosity} ' + '-t {benchmark_name} -H {server_ip} -l {length} {confidence}' + ' -- ' + '-P ,{{data_port}} ' + '-R 1 ' + '-m {send_size} ' + '-o {output_selector}').format( + netperf_path=netperf.NETPERF_PATH, + benchmark_name=benchmark_name, + server_ip=server_ip, + length=FLAGS.netperf_test_length, + output_selector=OUTPUT_SELECTOR, + confidence=confidence, + verbosity=verbosity, + send_size=FLAGS.netperf_udp_stream_send_size_in_bytes) + + metadata['netperf_send_size_in_bytes'] = FLAGS.netperf_udp_stream_send_size_in_bytes, + + + elif benchmark_name.upper() == 'TCP_STREAM': + netperf_cmd = ('{netperf_path} -p {{command_port}} -j {verbosity} ' + '-t {benchmark_name} -H {server_ip} -l {length} {confidence}' + ' -- ' + '-P ,{{data_port}} ' + '-R 1 ' + '-m {send_size} ' + '-o {output_selector}').format( + netperf_path=netperf.NETPERF_PATH, + benchmark_name=benchmark_name, + server_ip=server_ip, + length=FLAGS.netperf_test_length, + output_selector=OUTPUT_SELECTOR, + confidence=confidence, + verbosity=verbosity, + send_size=FLAGS.netperf_tcp_stream_send_size_in_bytes) + + metadata = {'netperf_test_length': FLAGS.netperf_test_length, + 'netperf_send_size_in_bytes' : FLAGS.netperf_tcp_stream_send_size_in_bytes, + 'netperf_test_length_unit': 'seconds', + 'max_iter': FLAGS.netperf_max_iter or 1, + 'sending_thread_count': num_streams} + + else: + netperf_cmd = ('{netperf_path} -p {{command_port}} -j {verbosity} ' + '-t {benchmark_name} -H {server_ip} -l {length} {confidence}' + ' -- ' + '-P ,{{data_port}} ' + '-o {output_selector}').format( + netperf_path=netperf.NETPERF_PATH, + benchmark_name=benchmark_name, + server_ip=server_ip, + length=FLAGS.netperf_test_length, + output_selector=OUTPUT_SELECTOR, + confidence=confidence, verbosity=verbosity) + + metadata = {'netperf_test_length': FLAGS.netperf_test_length, + 'max_iter': FLAGS.netperf_max_iter or 1, + 'sending_thread_count': num_streams} + if FLAGS.netperf_thinktime != 0: netperf_cmd += (' -X {thinktime},{thinktime_array_size},' '{thinktime_run_length} ').format( @@ -402,11 +465,6 @@ def RunNetperf(vm, benchmark_name, server_ip, num_streams): json_out = json.loads(remote_stdout) stdouts = json_out[0] - # Metadata to attach to samples - metadata = {'netperf_test_length': FLAGS.netperf_test_length, - 'max_iter': FLAGS.netperf_max_iter or 1, - 'sending_thread_count': num_streams} - parsed_output = [ParseNetperfOutput(stdout, metadata, benchmark_name, enable_latency_histograms) for stdout in stdouts] From 634014f3adb080c583387f8d8ecc6f733c9133a8 Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Tue, 7 Jan 2020 15:51:07 -0600 Subject: [PATCH 02/13] add flags and UDP_STREAM and pep fixes --- .../linux_benchmarks/netperf_benchmark.py | 80 ++++++------------- 1 file changed, 24 insertions(+), 56 deletions(-) diff --git a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py index 5eab3c7cc2..4b1e554d91 100644 --- a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py @@ -82,7 +82,7 @@ BENCHMARK_NAME = 'netperf' BENCHMARK_CONFIG = """ netperf: - description: Run TCP_RR, TCP_CRR, UDP_RR and TCP_STREAM + description: Run TCP_RR, TCP_CRR, UDP_RR, TCP_STREAM and UDP_STREAM vm_groups: vm_1: vm_spec: *default_single_core @@ -271,6 +271,9 @@ def ParseNetperfOutput(stdout, metadata, benchmark_name, # 99th Percentile Latency Microseconds,Minimum Latency Microseconds, # Maximum Latency Microseconds\n # 1405.50,Trans/s,2.522,4,783.80,683,735,841,600,900\n + print("PARSE NETPERF OUTPUT") + print("STDOUT") + print(stdout) try: fp = six.StringIO(stdout) # "-o" flag above specifies CSV output, but there is one extra header line: @@ -291,6 +294,7 @@ def ParseNetperfOutput(stdout, metadata, benchmark_name, raise errors.Benchmarks.KnownIntermittentError(message) # Update the metadata with some additional infos + print("BENCHMARK NAME: ", benchmark_name) meta_keys = [('Confidence Iterations Run', 'confidence_iter'), ('Throughput Confidence Width (%)', 'confidence_width_percent')] if 'TCP' in benchmark_name: @@ -381,65 +385,29 @@ def RunNetperf(vm, benchmark_name, server_ip, num_streams): 'sending_thread_count': num_streams, 'max_iter': FLAGS.netperf_max_iter or 1} + netperf_cmd = ('{netperf_path} -p {{command_port}} -j {verbosity} ' + '-t {benchmark_name} -H {server_ip} -l {length} {confidence}' + ' -- ' + '-P ,{{data_port}} ' + '-o {output_selector}').format( + netperf_path=netperf.NETPERF_PATH, + benchmark_name=benchmark_name, + server_ip=server_ip, + length=FLAGS.netperf_test_length, + output_selector=OUTPUT_SELECTOR, + confidence=confidence, + verbosity=verbosity) + if benchmark_name.upper() == 'UDP_STREAM': - netperf_cmd = ('{netperf_path} -p {{command_port}} -j {verbosity} ' - '-t {benchmark_name} -H {server_ip} -l {length} {confidence}' - ' -- ' - '-P ,{{data_port}} ' - '-R 1 ' - '-m {send_size} ' - '-o {output_selector}').format( - netperf_path=netperf.NETPERF_PATH, - benchmark_name=benchmark_name, - server_ip=server_ip, - length=FLAGS.netperf_test_length, - output_selector=OUTPUT_SELECTOR, - confidence=confidence, - verbosity=verbosity, - send_size=FLAGS.netperf_udp_stream_send_size_in_bytes) - - metadata['netperf_send_size_in_bytes'] = FLAGS.netperf_udp_stream_send_size_in_bytes, + netperf_cmd += (' -R 1 -m {send_size} '.format( + send_size=FLAGS.netperf_udp_stream_send_size_in_bytes)) + metadata['netperf_send_size_in_bytes'] = FLAGS.netperf_udp_stream_send_size_in_bytes elif benchmark_name.upper() == 'TCP_STREAM': - netperf_cmd = ('{netperf_path} -p {{command_port}} -j {verbosity} ' - '-t {benchmark_name} -H {server_ip} -l {length} {confidence}' - ' -- ' - '-P ,{{data_port}} ' - '-R 1 ' - '-m {send_size} ' - '-o {output_selector}').format( - netperf_path=netperf.NETPERF_PATH, - benchmark_name=benchmark_name, - server_ip=server_ip, - length=FLAGS.netperf_test_length, - output_selector=OUTPUT_SELECTOR, - confidence=confidence, - verbosity=verbosity, - send_size=FLAGS.netperf_tcp_stream_send_size_in_bytes) - - metadata = {'netperf_test_length': FLAGS.netperf_test_length, - 'netperf_send_size_in_bytes' : FLAGS.netperf_tcp_stream_send_size_in_bytes, - 'netperf_test_length_unit': 'seconds', - 'max_iter': FLAGS.netperf_max_iter or 1, - 'sending_thread_count': num_streams} - - else: - netperf_cmd = ('{netperf_path} -p {{command_port}} -j {verbosity} ' - '-t {benchmark_name} -H {server_ip} -l {length} {confidence}' - ' -- ' - '-P ,{{data_port}} ' - '-o {output_selector}').format( - netperf_path=netperf.NETPERF_PATH, - benchmark_name=benchmark_name, - server_ip=server_ip, - length=FLAGS.netperf_test_length, - output_selector=OUTPUT_SELECTOR, - confidence=confidence, verbosity=verbosity) - - metadata = {'netperf_test_length': FLAGS.netperf_test_length, - 'max_iter': FLAGS.netperf_max_iter or 1, - 'sending_thread_count': num_streams} + netperf_cmd += (' -R 1 -m {send_size} '.format( + send_size=FLAGS.netperf_tcp_stream_send_size_in_bytes)) + metadata['netperf_send_size_in_bytes'] = FLAGS.netperf_tcp_stream_send_size_in_bytes if FLAGS.netperf_thinktime != 0: netperf_cmd += (' -X {thinktime},{thinktime_array_size},' From 6e4eb0d187c15071eaf84ebc2931bb23f0237760 Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Tue, 7 Jan 2020 15:53:07 -0600 Subject: [PATCH 03/13] remove debug statements --- perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py index 4b1e554d91..f627fa15fe 100644 --- a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py @@ -271,9 +271,6 @@ def ParseNetperfOutput(stdout, metadata, benchmark_name, # 99th Percentile Latency Microseconds,Minimum Latency Microseconds, # Maximum Latency Microseconds\n # 1405.50,Trans/s,2.522,4,783.80,683,735,841,600,900\n - print("PARSE NETPERF OUTPUT") - print("STDOUT") - print(stdout) try: fp = six.StringIO(stdout) # "-o" flag above specifies CSV output, but there is one extra header line: @@ -294,7 +291,6 @@ def ParseNetperfOutput(stdout, metadata, benchmark_name, raise errors.Benchmarks.KnownIntermittentError(message) # Update the metadata with some additional infos - print("BENCHMARK NAME: ", benchmark_name) meta_keys = [('Confidence Iterations Run', 'confidence_iter'), ('Throughput Confidence Width (%)', 'confidence_width_percent')] if 'TCP' in benchmark_name: From c1089902d5c1e98ad05dd81cf92f5c24c8903eb8 Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Tue, 7 Jan 2020 15:57:38 -0600 Subject: [PATCH 04/13] add flag to container_netperf --- .../linux_benchmarks/container_netperf_benchmark.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py index c61a3a1a46..f42d6034f6 100644 --- a/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py @@ -27,6 +27,9 @@ FLAGS = flags.FLAGS +flags.DEFINE_integer('container_netperf_tcp_stream_send_size_in_bytes', 131072, + 'Send size to use for TCP_STREAM tests (netperf -m flag)') + BENCHMARK_NAME = 'container_netperf' BENCHMARK_CONFIG = """ container_netperf: @@ -87,6 +90,7 @@ def Run(benchmark_spec): '-H', container_0.ip_address, '-l', '100', '--', + '-m', FLAGS.container_netperf_tcp_stream_send_size_in_bytes, '-o', netperf_benchmark.OUTPUT_SELECTOR] cluster.DeployContainer('netperf', benchmark_spec.container_specs['netperf']) container_1 = cluster.containers['netperf'][1] From 0c327f183afdb3f692bee513e1d8345cce2e91bb Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Tue, 7 Jan 2020 16:53:00 -0600 Subject: [PATCH 05/13] added UDP STREAM results to tests --- CHANGES.next.md | 4 ++++ tests/data/netperf_results.json | 10 ++++++++++ tests/linux_benchmarks/netperf_benchmark_test.py | 5 ++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGES.next.md b/CHANGES.next.md index 72c2e24c5c..8d79f948dd 100644 --- a/CHANGES.next.md +++ b/CHANGES.next.md @@ -159,12 +159,16 @@ - Added AWS DAX provider. - Added Google Cloud Firestore ycsb benchmarks. - Added support for un-managed data processing yarn cluster benchmarking. +- Added support for UDP_STREAM tests to netperf_benchmark +- Added flags to select stream size to netperf_benchmark - Added placement group flag support for Azure. "cluster" will create proximity placement group. "spread" will create an availability set. - Added a tcpdump collector with --tcpdump flag. - Added ability to load datasets into BigQuery from csv files on GCS. - Updated AzureVirtualNetwork to support location level virtual nets, which allows support for cross zone benchmark runs. +>>>>>>> added UDP STREAM results to tests + ### Enhancements: - Support for ProfitBricks API v4: - Add `profitbricks_image_alias` flag and support for image aliases diff --git a/tests/data/netperf_results.json b/tests/data/netperf_results.json index 8e5d302605..807735f70e 100644 --- a/tests/data/netperf_results.json +++ b/tests/data/netperf_results.json @@ -38,5 +38,15 @@ "MIGRATED UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 20001 AF_INET to 10.240.31.117 () port 20001 AF_INET : +/-2.500% @ 99% conf. : first burst 0", "Throughput,Throughput Units,Throughput Confidence Width (%),Confidence Iterations Run,Stddev Latency Microseconds,50th Percentile Latency Microseconds,90th Percentile Latency Microseconds,99th Percentile Latency Microseconds,Minimum Latency Microseconds,Maximum Latency Microseconds,Local Transport Retransmissions,Remote Transport Retransmissions", "3313.49,Trans/s,7.546,20,214.64,295,330,406,200,500,0,0" + ], + [ + "MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 104.198.67.251 () port 20001 AF_INET : +/-2.500% @ 99% conf.", + "Throughput,Throughput Units,50th Percentile Latency Microseconds,90th Percentile Latency Microseconds,99th Percentile Latency Microseconds,Stddev Latency Microseconds,Minimum Latency Microseconds,Maximum Latency Microseconds,Confidence Iterations Run,Throughput Confidence Width (%),Local Transport Retransmissions,Remote Transport Retransmissions", + "1102.42,10^6bits/s,3,3,11,46.14,1,15144,1,-1.000,-1,-1" + ], + [ + "MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 104.198.67.251 () port 20001 AF_INET : +/-2.500% @ 99% conf.", + "Throughput,Throughput Units,50th Percentile Latency Microseconds,90th Percentile Latency Microseconds,99th Percentile Latency Microseconds,Stddev Latency Microseconds,Minimum Latency Microseconds,Maximum Latency Microseconds,Confidence Iterations Run,Throughput Confidence Width (%),Local Transport Retransmissions,Remote Transport Retransmissions", + "1802.72,10^6bits/s,3,3,11,46.14,1,15144,1,-1.000,-1,-1" ] ] diff --git a/tests/linux_benchmarks/netperf_benchmark_test.py b/tests/linux_benchmarks/netperf_benchmark_test.py index 872e39aa4b..046c0ce0d4 100644 --- a/tests/linux_benchmarks/netperf_benchmark_test.py +++ b/tests/linux_benchmarks/netperf_benchmark_test.py @@ -129,7 +129,10 @@ def testExternalAndInternal(self): ('UDP_RR_Latency_p99', 406.0, 'us'), ('UDP_RR_Latency_min', 200.0, 'us'), ('UDP_RR_Latency_max', 500.0, 'us'), - ('UDP_RR_Latency_stddev', 214.64, 'us')], + ('UDP_RR_Latency_stddev', 214.64, 'us'), + ('UDP_STREAM_Throughput', 1102.42, mbps), + ('UDP_STREAM_Throughput', 1802.72, 'Mbits/sec'), + ], [i[:3] for i in result]) external_meta = {'ip_type': 'external'} From 055d047bb6fa757ef643d5d339b802154554af97 Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Wed, 8 Jan 2020 15:58:50 -0600 Subject: [PATCH 06/13] add -M flag --- perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py index f627fa15fe..fabdff59c8 100644 --- a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py @@ -374,8 +374,8 @@ def RunNetperf(vm, benchmark_name, server_ip, num_streams): netperf_cmd = "" - remote_cmd_timeout = \ - FLAGS.netperf_test_length * (FLAGS.netperf_max_iter or 1) + 300 + remote_cmd_timeout = ( + FLAGS.netperf_test_length * (FLAGS.netperf_max_iter or 1) + 300) metadata = {'netperf_test_length': FLAGS.netperf_test_length, 'sending_thread_count': num_streams, @@ -395,13 +395,12 @@ def RunNetperf(vm, benchmark_name, server_ip, num_streams): verbosity=verbosity) if benchmark_name.upper() == 'UDP_STREAM': - netperf_cmd += (' -R 1 -m {send_size} '.format( + netperf_cmd += (' -R 1 -m {send_size} -M {send_size} '.format( send_size=FLAGS.netperf_udp_stream_send_size_in_bytes)) metadata['netperf_send_size_in_bytes'] = FLAGS.netperf_udp_stream_send_size_in_bytes - elif benchmark_name.upper() == 'TCP_STREAM': - netperf_cmd += (' -R 1 -m {send_size} '.format( + netperf_cmd += (' -R 1 -m {send_size} -M {send_size} '.format( send_size=FLAGS.netperf_tcp_stream_send_size_in_bytes)) metadata['netperf_send_size_in_bytes'] = FLAGS.netperf_tcp_stream_send_size_in_bytes From 01f9d22b9a872843ed7d2550c7c29ed5b93e827e Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Wed, 8 Jan 2020 16:01:56 -0600 Subject: [PATCH 07/13] remove unnecessary line --- perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py index fabdff59c8..12d8478844 100644 --- a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py @@ -372,8 +372,6 @@ def RunNetperf(vm, benchmark_name, server_ip, num_streams): if FLAGS.netperf_max_iter else '') verbosity = '-v2 ' if enable_latency_histograms else '' - netperf_cmd = "" - remote_cmd_timeout = ( FLAGS.netperf_test_length * (FLAGS.netperf_max_iter or 1) + 300) From edbc7499fce8015099d26c1f0979afbb81d4a52c Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Wed, 8 Jan 2020 20:37:36 -0600 Subject: [PATCH 08/13] add comment justifying default size --- .../linux_benchmarks/container_netperf_benchmark.py | 3 +++ perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py index f42d6034f6..adca6c9913 100644 --- a/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py @@ -27,6 +27,9 @@ FLAGS = flags.FLAGS +# Set default as 128KB (131072 bytes) +# the Linux default of 16K cannot achieve +# "link rate" and that the higher default value will let us flags.DEFINE_integer('container_netperf_tcp_stream_send_size_in_bytes', 131072, 'Send size to use for TCP_STREAM tests (netperf -m flag)') diff --git a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py index 12d8478844..eca6cc4808 100644 --- a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py @@ -67,6 +67,9 @@ 'thinktime array.') flags.DEFINE_integer('netperf_udp_stream_send_size_in_bytes', 1024, 'Send size to use for UDP_STREAM tests (netperf -m flag)') +# Set default as 128KB (131072 bytes) +# the Linux default of 16K cannot achieve +# "link rate" and that the higher default value will let us flags.DEFINE_integer('netperf_tcp_stream_send_size_in_bytes', 131072, 'Send size to use for TCP_STREAM tests (netperf -m flag)') From 75deef97660b7a206306945a992f037bf80d4bd5 Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Wed, 8 Jan 2020 20:40:59 -0600 Subject: [PATCH 09/13] change to not in --- perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py index eca6cc4808..157b8b84a5 100644 --- a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py @@ -362,8 +362,8 @@ def RunNetperf(vm, benchmark_name, server_ip, num_streams): """ enable_latency_histograms = FLAGS.netperf_enable_histograms or num_streams > 1 # Throughput benchmarks don't have latency histograms - enable_latency_histograms = enable_latency_histograms and \ - (benchmark_name != 'TCP_STREAM' and benchmark_name != 'UDP_STREAM') + enable_latency_histograms = (enable_latency_histograms and + (benchmark_name not in ['TCP_STREAM', 'UDP_STREAM'])) # Flags: # -o specifies keys to include in CSV output. # -j keeps additional latency numbers From 26c5758130acc2269ba578cd84a15ae42cea9ffe Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Wed, 8 Jan 2020 20:55:42 -0600 Subject: [PATCH 10/13] add upper and lower bounds to UDP send size --- perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py index 157b8b84a5..fd43feef08 100644 --- a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py @@ -66,7 +66,8 @@ 'The number of contiguous numbers to sum at a time in the ' 'thinktime array.') flags.DEFINE_integer('netperf_udp_stream_send_size_in_bytes', 1024, - 'Send size to use for UDP_STREAM tests (netperf -m flag)') + 'Send size to use for UDP_STREAM tests (netperf -m flag)', + lower_bound=1, upper_bound=65507) # Set default as 128KB (131072 bytes) # the Linux default of 16K cannot achieve # "link rate" and that the higher default value will let us From 28eecd786186913068ff1a937f1bd1465c757d6a Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Thu, 9 Jan 2020 12:39:18 -0600 Subject: [PATCH 11/13] revised comment --- .../linux_benchmarks/container_netperf_benchmark.py | 5 ++--- perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py index adca6c9913..6ab75dda78 100644 --- a/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/container_netperf_benchmark.py @@ -27,9 +27,8 @@ FLAGS = flags.FLAGS -# Set default as 128KB (131072 bytes) -# the Linux default of 16K cannot achieve -# "link rate" and that the higher default value will let us +# We set the default to 128KB (131072 bytes) to override the Linux default +# of 16K so that we can achieve the "link rate". flags.DEFINE_integer('container_netperf_tcp_stream_send_size_in_bytes', 131072, 'Send size to use for TCP_STREAM tests (netperf -m flag)') diff --git a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py index fd43feef08..9fe9501073 100644 --- a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py @@ -68,9 +68,8 @@ flags.DEFINE_integer('netperf_udp_stream_send_size_in_bytes', 1024, 'Send size to use for UDP_STREAM tests (netperf -m flag)', lower_bound=1, upper_bound=65507) -# Set default as 128KB (131072 bytes) -# the Linux default of 16K cannot achieve -# "link rate" and that the higher default value will let us +# We set the default to 128KB (131072 bytes) to override the Linux default +# of 16K so that we can achieve the "link rate". flags.DEFINE_integer('netperf_tcp_stream_send_size_in_bytes', 131072, 'Send size to use for TCP_STREAM tests (netperf -m flag)') From b6ff0ce6456f4a171a9e7280c2ec9fb7fa76a8c7 Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Fri, 10 Jan 2020 00:37:39 -0600 Subject: [PATCH 12/13] remove -R 1 flag for TCP_STREAM, it is implicit --- perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py index 9fe9501073..03e6a74465 100644 --- a/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py +++ b/perfkitbenchmarker/linux_benchmarks/netperf_benchmark.py @@ -401,7 +401,7 @@ def RunNetperf(vm, benchmark_name, server_ip, num_streams): metadata['netperf_send_size_in_bytes'] = FLAGS.netperf_udp_stream_send_size_in_bytes elif benchmark_name.upper() == 'TCP_STREAM': - netperf_cmd += (' -R 1 -m {send_size} -M {send_size} '.format( + netperf_cmd += (' -m {send_size} -M {send_size} '.format( send_size=FLAGS.netperf_tcp_stream_send_size_in_bytes)) metadata['netperf_send_size_in_bytes'] = FLAGS.netperf_tcp_stream_send_size_in_bytes From e5991dfb401f61aa718ce6340744b100ee58a9d1 Mon Sep 17 00:00:00 2001 From: Derek Phanekham Date: Fri, 10 Jan 2020 00:41:28 -0600 Subject: [PATCH 13/13] remove line --- CHANGES.next.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGES.next.md b/CHANGES.next.md index 8d79f948dd..546b817ac9 100644 --- a/CHANGES.next.md +++ b/CHANGES.next.md @@ -167,8 +167,6 @@ - Added ability to load datasets into BigQuery from csv files on GCS. - Updated AzureVirtualNetwork to support location level virtual nets, which allows support for cross zone benchmark runs. ->>>>>>> added UDP STREAM results to tests - ### Enhancements: - Support for ProfitBricks API v4: - Add `profitbricks_image_alias` flag and support for image aliases