diff options
Diffstat (limited to 'tools/run_tests/performance/scenario_config.py')
-rw-r--r-- | tools/run_tests/performance/scenario_config.py | 33 |
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++' |