Gobench supports gRPC

What is news: Gobench is supporting gRPC, both unary RPC and streaming. Now you can use Gobench to benchmark servers with HTTP, MQTT, NATs, and gRPC.

See Gobench project at https://github.com/gobench-io/gobench

To test the gRPC benchmark, we will we will use the examples provided by grpc-go project.

git clone https://github.com/grpc/grpc-go
cd grpc-go/examples

Unary gRPC

Run the greeter server:

go run helloworld/greeter_server/main.go

Then create a new Gobench scenario on this link. This program generates 5 virtual users each sends helloworld.Greeter/SayHello RPC in 2 minutes. The dashboard records the number of responses and the request latency as depicted in the following picture.

Unary-RPC

Picture: Metrics recorded for SayHello unary gRPC.

gRPC stream

Run the route_guide streaming server:

go run route_guide/server/server.go

Then create a new Gobench scenario on this link. This program generates 5 virtual users each sends routeguide.RouteGuide/ListFeatures RPC in 2 minutes. The dashboard records number of new streaming created, latency, the number of the streaming requests sent (which will be equal to the number of new streaming created), the streaming request latency, and the number of the total messages received in all streams with their latency.

Unary-RPC

Picture: Metrics recorded for ListFeatures gRPC streamming.

Written on July 18, 2021