aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/run_tests/performance/scenario_config.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/run_tests/performance/scenario_config.py')
-rw-r--r--tools/run_tests/performance/scenario_config.py33
1 files changed, 31 insertions, 2 deletions
diff --git a/tools/run_tests/performance/scenario_config.py b/tools/run_tests/performance/scenario_config.py
index 77b158f27e..c52c061c9d 100644
--- a/tools/run_tests/performance/scenario_config.py
+++ b/tools/run_tests/performance/scenario_config.py
@@ -93,6 +93,7 @@ def remove_nonproto_fields(scenario):
def _ping_pong_scenario(name, rpc_type,
client_type, server_type,
secure=True,
+ use_big_generic_payload=False,
use_generic_payload=False,
unconstrained_client=None,
client_language=None,
@@ -127,7 +128,12 @@ def _ping_pong_scenario(name, rpc_type,
'warmup_seconds': warmup_seconds,
'benchmark_seconds': BENCHMARK_SECONDS
}
- if use_generic_payload:
+ if use_big_generic_payload:
+ if server_type != 'ASYNC_GENERIC_SERVER':
+ raise Exception('Use ASYNC_GENERIC_SERVER for big generic payload.')
+ scenario['client_config']['payload_config'] = BIG_GENERIC_PAYLOAD
+ scenario['server_config']['payload_config'] = BIG_GENERIC_PAYLOAD
+ elif use_generic_payload:
if server_type != 'ASYNC_GENERIC_SERVER':
raise Exception('Use ASYNC_GENERIC_SERVER for generic payload.')
scenario['client_config']['payload_config'] = EMPTY_GENERIC_PAYLOAD
@@ -140,13 +146,23 @@ def _ping_pong_scenario(name, rpc_type,
if unconstrained_client == 'async':
deep = DEEP
wide = WIDE
+ num_clients = 0 # use as many clients as available
elif unconstrained_client == 'sync':
deep = SYNC_DEEP
wide = SYNC_WIDE
+ num_clients = 0 # use as many clients as available
+ elif unconstrained_client == '1chan_bw':
+ deep = DEEP
+ wide = 1
+ num_clients = 1 # limit to 1 for a single channel
+ elif unconstrained_client == 'Nchan_bw':
+ deep = DEEP
+ wide = WIDE
+ num_clients = 0 # use as many clients as available
else:
raise Exception('Illegal value of unconstrained_client option.')
- scenario['num_clients'] = 0 # use as many client as available.
+ scenario['num_clients'] = num_clients
scenario['client_config']['outstanding_rpcs_per_channel'] = deep
scenario['client_config']['client_channels'] = wide
scenario['client_config']['async_client_threads'] = 0
@@ -236,6 +252,19 @@ class CXXLanguage:
server_core_limit=1, async_server_threads=1,
secure=secure)
+ yield _ping_pong_scenario(
+ 'cpp_generic_async_streaming_single_channel_throughput_%s' % secstr, rpc_type='STREAMING',
+ client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+ unconstrained_client='1chan_bw', use_big_generic_payload=True,
+ secure=secure,
+ categories=smoketest_categories)
+
+ yield _ping_pong_scenario(
+ 'cpp_generic_async_streaming_multi_channel_throughput_%s' % secstr, rpc_type='STREAMING',
+ client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+ unconstrained_client='Nchan_bw', use_big_generic_payload=True,
+ secure=secure)
+
def __str__(self):
return 'c++'