それなりに適当にやってます

なんとなくそれっぽいメモとか備忘録とか適当に。 2018年5月にブログ移転しました。 古い記事は未整理です。

Tsung によるウェブサイトの負荷試験


ウェブサイトの負荷を計測するために Tsung を試してみた。

参考URL

テスト環境

CentOS 7.x を導入し、firewalld と SELinux無効化、アップデートして再起動
$ sudo systemctl disable firewalld
$ sudo systemctl stop firewalld
$ sudo setenforce 0
$ sudo sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
$ sudo yum upgrade -y
$ sudo reboot

インストール

EPELかソースから導入する。Tsungを構成するノードが複数ある場合は、全ノードにて同様にインストールを行う。

EPELから導入する場合

EPELにあったのでEPELから導入、AmazonLinuxなど依存関係でダメな場合は次項のソースから導入を参照
$ sudo yum install https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
$ sudo sed -i s/enabled=1/enabled=0/g /etc/yum.repos.d/epel.repo
$ sudo yum --enablerepo=epel install tsung
最新は 1.6.0のようだけど、EPELから導入出来たのは "tsung-1.5.1-2.el7.x86_64" だった。

ソースから導入する場合

依存するパッケージの導入

$ sudo yum install @development

ソースを拾ってコンパイル

github からソースを拾い適当にコンパイルして入れる
$ cd /usr/local/src
$ sudo git clone https://github.com/processone/tsung
$ chown -R username:usergroup tsung
$ cd tsung
$ ./configure && make -j `egrep -c processor /proc/cpuinfo`
$ sudo make install

ノード間アクセス用のSSH鍵作成

$ ssh-keygen -N '' -t rsa -b 2048
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ ssh localhost
SSH鍵の展開
$ ssh   #<-構成ノードの全IPを叩いてホスト鍵を保存
authorized_keys, known_hosts, id_pub などを全ノードに展開する

hosts の設定

設定に合わせて適当に作って全ノードに展開する
$ sudo vi /etc/hosts
...
XXX.XXX.XXX.XXX A
XXX.XXX.XXX.XXX B
XXX.XXX.XXX.XXX C

設定ファイルの作成

$ vi ~/tsung.xml




















































動作確認

$ tsung -f ~/tsung.xml start
アタックされた側・・・
$ w
13:41:36 up 1 day, 2:37, 2 users, load average: 142.11, 47.35, 16.88
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
senokuch pts/0 11:11 4.00s 0.82s 9.87s /bin/xfce4-terminal
senokuch pts/1 13:12 1.00s 0.54s 0.43s ssh -XC -o ServerAliveInterval=

楽しい!!! ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌



動作確認

  • 実行中は ${HOME}/.tsung/log/YYYYMMDD-HHMM/tsung_controller\\@.log を見る。
  • 下記のようなメッセージがログに出力された場合、重い?CPU性能が足りていない?
    =ERROR REPORT==== 16-Oct-2015::11:09:02 ===
    ** Node tsung2@vm170 not responding **
    ** Removing (timedout) connection **
  • この場合、XMLに記載されたCPUの値を調整する(コア-2 がおすすめ)
  • これは実際に動かしてみないとわからないので要試行錯誤。。。

グラフレポートの出力

tsung_stats.pl にてログファイルからHTML形式のレポートを生成する。

Perlモジュールのインストール

$ sudo yum install perl-App-cpanminus @development gnuplot
$ sudo cpanm Template
$ mkdir ~/report ; cd $_
$ /usr/lib64/tsung/bin/tsung_stats.pl --stats /root/.tsung/log/YYYYMMDD-HHMM/tsung_controller\\@.log

カレントディレクトリにレポートのHTML・画像などが生成されるので適当に見る。

以上、適当に。