|
|
|
@ -60,11 +60,15 @@ DEFINE_int32(client_channels, 1, "Number of client channels"); |
|
|
|
|
DEFINE_int32(payload_size, 1, "Payload size"); |
|
|
|
|
DEFINE_string(client_type, "SYNCHRONOUS_CLIENT", "Client type"); |
|
|
|
|
DEFINE_int32(async_client_threads, 1, "Async client threads"); |
|
|
|
|
DEFINE_string(load_type, "CLOSED_LOOP", "Load type"); |
|
|
|
|
DEFINE_double(load_param_1, 0.0, "Load parameter 1"); |
|
|
|
|
DEFINE_double(load_param_2, 0.0, "Load parameter 2"); |
|
|
|
|
|
|
|
|
|
using grpc::testing::ClientConfig; |
|
|
|
|
using grpc::testing::ServerConfig; |
|
|
|
|
using grpc::testing::ClientType; |
|
|
|
|
using grpc::testing::ServerType; |
|
|
|
|
using grpc::testing::LoadType; |
|
|
|
|
using grpc::testing::RpcType; |
|
|
|
|
using grpc::testing::ResourceUsage; |
|
|
|
|
|
|
|
|
@ -77,11 +81,14 @@ int main(int argc, char** argv) { |
|
|
|
|
|
|
|
|
|
ClientType client_type; |
|
|
|
|
ServerType server_type; |
|
|
|
|
LoadType load_type; |
|
|
|
|
GPR_ASSERT(ClientType_Parse(FLAGS_client_type, &client_type)); |
|
|
|
|
GPR_ASSERT(ServerType_Parse(FLAGS_server_type, &server_type)); |
|
|
|
|
GPR_ASSERT(LoadType_Parse(FLAGS_load_type, &load_type)); |
|
|
|
|
|
|
|
|
|
ClientConfig client_config; |
|
|
|
|
client_config.set_client_type(client_type); |
|
|
|
|
client_config.set_load_type(load_type); |
|
|
|
|
client_config.set_enable_ssl(FLAGS_enable_ssl); |
|
|
|
|
client_config.set_outstanding_rpcs_per_channel( |
|
|
|
|
FLAGS_outstanding_rpcs_per_channel); |
|
|
|
@ -90,6 +97,40 @@ int main(int argc, char** argv) { |
|
|
|
|
client_config.set_async_client_threads(FLAGS_async_client_threads); |
|
|
|
|
client_config.set_rpc_type(rpc_type); |
|
|
|
|
|
|
|
|
|
// set up the load parameters
|
|
|
|
|
switch (load_type) { |
|
|
|
|
case grpc::testing::CLOSED_LOOP: |
|
|
|
|
break; |
|
|
|
|
case grpc::testing::POISSON: { |
|
|
|
|
auto poisson = client_config.mutable_load_params()->mutable_poisson(); |
|
|
|
|
GPR_ASSERT(FLAGS_load_param_1 != 0.0); |
|
|
|
|
poisson->set_offered_load(FLAGS_load_param_1); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case grpc::testing::UNIFORM: { |
|
|
|
|
auto uniform = client_config.mutable_load_params()->mutable_uniform(); |
|
|
|
|
GPR_ASSERT(FLAGS_load_param_1 != 0.0); |
|
|
|
|
GPR_ASSERT(FLAGS_load_param_2 != 0.0); |
|
|
|
|
uniform->set_interarrival_lo(FLAGS_load_param_1 / 1e6); |
|
|
|
|
uniform->set_interarrival_hi(FLAGS_load_param_2 / 1e6); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case grpc::testing::DETERMINISTIC: { |
|
|
|
|
auto determ = client_config.mutable_load_params()->mutable_determ(); |
|
|
|
|
GPR_ASSERT(FLAGS_load_param_1 != 0.0); |
|
|
|
|
determ->set_offered_load(FLAGS_load_param_1); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case grpc::testing::PARETO: { |
|
|
|
|
auto pareto = client_config.mutable_load_params()->mutable_pareto(); |
|
|
|
|
GPR_ASSERT(FLAGS_load_param_1 != 0.0); |
|
|
|
|
GPR_ASSERT(FLAGS_load_param_2 != 0.0); |
|
|
|
|
pareto->set_interarrival_base(FLAGS_load_param_1 / 1e6); |
|
|
|
|
pareto->set_alpha(FLAGS_load_param_2); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ServerConfig server_config; |
|
|
|
|
server_config.set_server_type(server_type); |
|
|
|
|
server_config.set_threads(FLAGS_server_threads); |
|
|
|
|