-
Notifications
You must be signed in to change notification settings - Fork 9
Performance Testing
Objective of this performance testing is to observe how well flogo-microgateway proxies a gRPC endpoint using a general purpose VM.
Following are the key performance metrics captured, when 1000 concurent gRPC clients stream messages (send & receive from gRPC echo server) through flogo-microgateway running in a EC2 instance:
Sample No. | Test Duration(Sec) | Throughput | Average Response Time(ns) | |
Messages Processed/Sec | Kilo Bytes Processed/Sec | |||
1 | 1800 | 65,847 | 2107 | 54,13,402 |
2 | 1800 | 65,829 | 2107 | 53,34,842 |
3 | 1800 | 65,820 | 2106 | 53,53,679 |
4 | 1800 | 65,780 | 2105 | 54,47,949 |
5 | 1800 | 65,808 | 2106 | 54,31,624 |
EC2 instance specification: t3.medium(Variable ECUs, 2 vCPUs, 2.5 GHz, Intel Skylake P-8175, 4 GiB memory, EBS only).
- Test Duration: Total test time in Seconds.
- Throughput (Messages Processed/Sec): Number of messages(Upstream + Downstream) transferred per second through the gateway.
- Throughput (Kilo Bytes Processed/Sec): Number of bytes(Upstream + Downstream) transferred per second through the gateway in Kilo values.
-
Average Response Time(ns): Average of message
round trip
time.round trip
- time taken for a message to travel from client -> gateway -> server -> gateway -> back to the client.
An average of 50% of CPU is utilized. The memory utilization is around 4%.
Test set up consists of 3 programs (Test-Runner and gRPC-Echo-Server running in EC2 Instance 1 and the Gateway running in EC2 instance 2)
- Test-Runner -> It is a go based application which simulates 1000 gRPC clients & captures required statistics.
- Gateway -> It's a Grpc-Bidirectional Streaming Example based microgateway
- gRPC-Echo-Server ->The light weight gRPC Echo Server which reads message object from incoming stream and writes the same on to outgoing stream.
During the test, Test-Runner application instantiates 1000 gRPC clients with 20ms wait time between 2 consecutive instantiations. Each gRPC-Client establishes connection with microgateway (acts as proxy for gRPC-Echo-Server). And then starts sending & receiving messages simultaneously with 30ms wait time between 2 consecutive message sends. Message payload holds the origin timestamp and its size is 32 bytes. The message payload timestamp will be used by Test-Runner to calculate round trip time when it reaches back to the Client (message path: Client -> Microgateway -> Echo Server -> Gateway -> Client). Test-runner application captures all messages with time stamps and calculates average round trip time (also referred as response time).