shiro seike / せいけ しろう / 清家 史郎
tsungを使ったパフォーマンステスト
2018/12/04
清家です。
最近は登壇駆動の影響でパフォーマンス測定を行ってます。
普段はすらっと ApacheBench で終わりなんですが、
それだと役不足になりつつあるので tsung と呼ばれる Erlang 製のツールを使ってます。
Mac 環境だとbrew install
でサクッと入ります。
$ brew install tsung
準備が整ったので実際に負荷試験を行います。
以下の様な XML を配置して実行します。
\<?xml version="1.0"?\>
\<!DOCTYPE tsung SYSTEM "/usr/local/Cellar/tsung/1.7.0/share/tsung/tsung-1.0.dtd"\>
\<tsung loglevel="notice" version="1.0"\>
\<clients\>
\<client host='localhost' maxusers="100" use\_controller\_vm="true"/\>
\</clients\>
\<servers\>
\<server host="192.168.33.46" port="80" type="tcp"/\>
\</servers\>
\<load\>
\<arrivalphase phase="1" duration="120" unit="second"\>
\<users maxnumber="50" arrivalrate="10000" unit="second"/\>
\</arrivalphase\>
\</load\>
\<sessions\>
\<session probability="100" name="http-test" type="ts\_http"\>
\<for from="1" to="100" incr="1" var="counter"\>
\<setdynvars sourcetype="random\_number" start="3" end="32"\>
\<var name="rndint" /\>
\</setdynvars\>
\<request\>
\<http url="/index.php" version="1.1" contents="rndint=%%\_rndint%%" method="POST"\>
\</http\>
\</request\>
\</for\>
\</session\>
\</sessions\>
\</tsung\>
log を logs ディレクトリに出力しながら実行
$ tsung -f ./tsung.xml -l logs start
すると logs 配下にファイルが出来るので解析を行います。
/usr/local/lib/tsung/bin/tsung_stats.pl
に解析用の perl モジュールがあるのですが、
シェバンが/usr/bin/perl
固定になっているので、自分の perl のパスを which で調べて変更します。
もしくは/usr/bin/perl
が利用される用に PATH の調整をしても良いかもしれません。
$ which perl
/usr/local/bin/perl
$ vim /usr/local/lib/tsung/bin/tsung\_stats.pl
#!/usr/bin/perl -w
↓に変更
#!/usr/local/bin/perl -w
解析実行
$ cd logs/yyyymmdd-hhmi
$ /usr/local/lib/tsung/bin/tsung\_stats.pl --stats tsung.log
すると HTML ファイルが出来上がるので結果が確認出来ます。
open report.html