Skip to content

Commit

Permalink
Merge pull request grpc#6661 from vjpai/throughput_fix
Browse files Browse the repository at this point in the history
Revive C++ large-message throughput tests
  • Loading branch information
jtattermusch committed May 22, 2016
2 parents f96711d + 3fe694f commit 33b7361
Show file tree
Hide file tree
Showing 2 changed files with 135 additions and 2 deletions.
33 changes: 31 additions & 2 deletions tools/run_tests/performance/scenario_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,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,
Expand Down Expand Up @@ -128,7 +129,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
Expand All @@ -141,13 +147,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
Expand Down Expand Up @@ -238,6 +254,19 @@ def scenarios(self):
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++'

Expand Down
104 changes: 104 additions & 0 deletions tools/run_tests/tests.json
Original file line number Diff line number Diff line change
Expand Up @@ -23227,6 +23227,58 @@
],
"shortname": "json_run_localhost:cpp_generic_async_streaming_qps_one_server_core_secure"
},
{
"args": [
"--scenario_json",
"'{\"name\": \"cpp_generic_async_streaming_single_channel_throughput_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 65536, \"req_size\": 65536}}, \"server_type\": \"ASYNC_GENERIC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 65536, \"req_size\": 65536}}, \"client_channels\": 1, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
],
"boringssl": true,
"ci_platforms": [
"linux",
"mac",
"posix",
"windows"
],
"cpu_cost": 1000.0,
"defaults": "boringssl",
"exclude_configs": [],
"flaky": false,
"language": "c++",
"name": "json_run_localhost",
"platforms": [
"linux",
"mac",
"posix",
"windows"
],
"shortname": "json_run_localhost:cpp_generic_async_streaming_single_channel_throughput_secure"
},
{
"args": [
"--scenario_json",
"'{\"name\": \"cpp_generic_async_streaming_multi_channel_throughput_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 65536, \"req_size\": 65536}}, \"server_type\": \"ASYNC_GENERIC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 65536, \"req_size\": 65536}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
],
"boringssl": true,
"ci_platforms": [
"linux",
"mac",
"posix",
"windows"
],
"cpu_cost": 1000.0,
"defaults": "boringssl",
"exclude_configs": [],
"flaky": false,
"language": "c++",
"name": "json_run_localhost",
"platforms": [
"linux",
"mac",
"posix",
"windows"
],
"shortname": "json_run_localhost:cpp_generic_async_streaming_multi_channel_throughput_secure"
},
{
"args": [
"--scenario_json",
Expand Down Expand Up @@ -23435,6 +23487,58 @@
],
"shortname": "json_run_localhost:cpp_generic_async_streaming_qps_one_server_core_insecure"
},
{
"args": [
"--scenario_json",
"'{\"name\": \"cpp_generic_async_streaming_single_channel_throughput_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": null, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 65536, \"req_size\": 65536}}, \"server_type\": \"ASYNC_GENERIC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 65536, \"req_size\": 65536}}, \"client_channels\": 1, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
],
"boringssl": true,
"ci_platforms": [
"linux",
"mac",
"posix",
"windows"
],
"cpu_cost": 1000.0,
"defaults": "boringssl",
"exclude_configs": [],
"flaky": false,
"language": "c++",
"name": "json_run_localhost",
"platforms": [
"linux",
"mac",
"posix",
"windows"
],
"shortname": "json_run_localhost:cpp_generic_async_streaming_single_channel_throughput_insecure"
},
{
"args": [
"--scenario_json",
"'{\"name\": \"cpp_generic_async_streaming_multi_channel_throughput_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": null, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 65536, \"req_size\": 65536}}, \"server_type\": \"ASYNC_GENERIC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 65536, \"req_size\": 65536}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
],
"boringssl": true,
"ci_platforms": [
"linux",
"mac",
"posix",
"windows"
],
"cpu_cost": 1000.0,
"defaults": "boringssl",
"exclude_configs": [],
"flaky": false,
"language": "c++",
"name": "json_run_localhost",
"platforms": [
"linux",
"mac",
"posix",
"windows"
],
"shortname": "json_run_localhost:cpp_generic_async_streaming_multi_channel_throughput_insecure"
},
{
"args": [
"test/core/end2end/fuzzers/api_fuzzer_corpus/00.bin"
Expand Down

0 comments on commit 33b7361

Please sign in to comment.