-
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 request using a general purpose VM. The results captured while running the Microgateway in EC2 instance are given below:
Test Duration(Sec) | Total Messages Transferred | Total MegaBytes(MB) Transferred | Transactions/Sec | Bytes/Sec | Average Response Time(ns) |
---|---|---|---|---|---|
1800 | 11,77,32,940 | 3767 | 65,407 | 2093K | 8188692 |
1800 | 11,77,50,866 | 3768 | 65,417 | 2093K | 8140357 |
1800 | 11,76,95,536 | 3766 | 65,386 | 2092K | 8368201 |
1800 | 11,77,36,920 | 3768 | 65,409 | 2093K | 8282428 |
1800 | 11,78,17,030 | 3770 | 65,454 | 2095K | 7815134 |
Here MB is in Decimal Standard,which means 1MB = 10^6 Bytes.
The EC2 instance used is 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.
- Total Messages Transferred: Total number of messages transferred through Gateway.
- Total Bytes Transferred: Total number of bytes transferred through Gateway.
- Messages/Sec: Total number of messages transferred per second through gateway.
- Bytes/Sec: Total number of bytes transferred per second through Gateway.
- Average Response Time(ns): The average response time taken for a message to travel from Client->Gateway->Server->Gateway→Client. The time is calculated in Nanosecond.
Test set up consists of 3 programs (Test-Runner, Gateway & gRPC-Echo-Server) running on a single EC2 instance.
- 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). Around 79% of CPU is utilized during the test.