負荷テストツールであるwrkの改良版、wrk2で遊んでみます。
ついでに有志によるwkr2の結果を可視化するツールをつかって、RPSの変化によってどのようにパフォーマンスが落ちていくか確認してみます。
用意するもの
今回、さっと試す用にdocker-composeで一連のツールをまとめた環境を作成しました。
https://github.com/RyujiKawazoe/wkr2_visualizer
中身
-
wrk2
- wrk2が積んであるイメージwrk2-dockerを使わせていただきました。有志に感謝!
-
hdr-plot
- 偉大な可視化ツールをつくってくれた有志に感謝!
説明
用意した環境のdocker-compose.ymlの中身は下記となっています。
version: '3'
services:
wrk2:
image: 1vlad/wrk2-docker
entrypoint: /bin/sh
command: -c '/wrk2/wrk -t2 -c100 -d30s -R100 --timeout 30s -L -s /script/myscript.lua http://localhost/ &> /data/result.out'
volumes:
- ./stress_test/lua:/lua
- ./stress_test/data:/data
hdr_plotter:
build: ./hdr-plotter/
command: /bin/bash -c "./hdr-plot --output /out/result.png --title 'result' /data/*"
volumes:
- ./stress_test/data:/data
- ./stress_test/out:/out
詳しい説明は省きますが、http://localhost/
を負荷をかけたいURLに書き換えてください。
100RPSで30秒間負荷をかけています。
負荷の実行
docker-compose run wrk2
実行が終わると、可視化に必要なファイルが ./stress_test/data
以下にはき出されます。
可視化の実行
docker-compose run hdr_plotter
上記を実行すると ./stress_test/out
にpngファイルがはき出されます。