ghzによる負荷テスト

負荷テスト、考えてみれば当然必要な概念だけど、初めてやっている。コンピュータが物理的なものだということを改めて感じる。

gRPCでできているサーバーを如何にしてテストするか調べていて、これを使った。サーバーってそもそもなんだっけ、と少しなっているがそれは置いておく。

ghz

ghz is a simple command line utility and Go package for load testing and benchmarking gRPC services. It is intended to be used for testing and debugging services locally, and in automated continous intergration environments for performance regression testing.

gPRCのgoでできた負荷テストツールで、ローカルでのテスト用であるらしい。ghzはギガヘルツからとってるのかな。

何かしらの形でバイナリファイルを手に入れて、コマンドを実行すると表示される。「ピーク帯の同時接続数がooのとき、平均レスポンスタイムがxxであること」みたいな要件をクリアできるかを見れる。

./ghz -insecure -proto  ./test.proto   -call GetResult   -D ./test.json   0.0.0.0:3000

って感じでやると、

Summary  
Count    200  
Total    174.35 ms  
Slowest    109.67 ms  
Fastest    0.75 ms  
Average    29.03 ms  
Requests / sec    1147.11  

こんなサマリが帰ってくる。