コンテンツにスキップするには Enter キーを押してください

tsungを使ったパフォーマンステスト

清家です。
最近は登壇駆動の影響でパフォーマンス測定を行ってます。

普段はすらっと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

Company:Fusic CO., LTD. 

Slides:slide.seike460.com

blog:seike460.hatenablog.com

Program Language:PHP , Go , Elixir

infrastructure:Server , Network , infrastructure as code

Frontend:Vue.js

Interest:Full Serverless Architecture

コメントする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です