CPU 負荷生成ツール nspin の紹介 : やっぱり Sun がスキ! やっぱり Sun がスキ!

やっぱり Sun がスキ!

http://blogs.sun.com/yappri/date/20080527 2008年 5月 27日 火曜日

CPU 負荷生成ツール nspin の紹介

今回は、CPU 負荷生成ツール nspin を紹介します。
サーバの仮想化環境を構築し、CPU のリソース割り当てに対して期待通りに 動作するか確認したい時、なにかしらのプログラムを利用して CPU に負荷を かけるテストを行うと思います。

そんな時、今回紹介する nspin がとても役立ちます。

[インストール方法]

Step.1
 まずは nspin のアーカイブを下記 URL よりダウンロードして展開して下さい。
  http://www.sun.com/bigadmin/software/nspin/nspin.tar.gz

Step.2
 nspin.tar.gz ファイルを展開すると、下記ファイルが現れます。
# ls
nspins.gz    nspinx.gz    readme.txt
Step.3
 動作するマシンが SPARC 版の場合は nspis.gz 、x86版の場合は nspinx.gz を 解凍し、ファイルに実行権を付与します。

 (例) SPARC版の設定
# gzip -d nspins.gz
# chmod 777 nspins
これでインストールは終了です。


[使用方法]
それでは早速使ってみましょう。
今回は、Solaris Containers の Zone に 4 CPU 分の Pool を割り当ててテスト してみました。

nspin の引数を何も指定しないで実行した場合、nspin のプロセスが 1 つ 無限ループで起動します。
# ./nspins

# ps -e | grep nspins
 14221 console     0:08 nspins

# mpstat 5
....
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
 24    0   0    0     6    0    0    5    0    0    0     0  100   0   0   0 
 25    0   0    2     2    0    2    0    0    0    0    93    0   0   0 100
 26    0   0    0    33    0   64    0    0    0    0    17    0   0   0 100
 27    0   0    0     2    0    2    0    0    0    0     1    0   0   0 100
....

負荷をかけるプロセスが 1 つだけでは 4 CPU 環境の場合、全ての CPU リソース を使い切る事ができません。
そこで、4 CPU 全てに対して負荷を生成する場合、nspin では -n オプションで同時に 起動するプロセス数を指定する事が可能です。
今回は、4 CPU なので、同時に 4 プロセス起動してみました。
# ./nspins -n 4

# ps -e | grep nspins
 14226 console     0:18 nspins
 14225 console     0:18 nspins
 14228 console     0:18 nspins
 14227 console     0:18 nspins

# mpstat 5
....
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
 24    1   0    2    17    0   21   16    0    0    0   100  100   0   0   0
 25    0   0    0    19    0   23   18    0    0    0     6  100   0   0   0
 26    0   0    0    18    0   23   17    0    0    0     6  100   0   0   0
 27    0   0    0     8    0    3    7    0    0    0     1  100   0   0  0
 ....  

上記結果より、4CPU 全てのリソースが 100% 使用している事が確認できました。
さらに -s オプションでシステムコールを多く発行して usr だけでなく sys の割合を増やして 実行する事も可能です。

# ./nspins -n 4 -s

# mpstat 5
....
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
 24    0   0    0     9    0    2    8    0    3    0 613828   70  30   0   0
 25    1   0    1     8    0    1    8    0    2    0 614967   70  30   0   0
 26    0   0    0    40    0   64   39    0    2    0 615484   70  30   0   0
 27    0   0    0    10    0    4    9    0    2    0 611706   70  30   0   0
....


最後に紹介するオプションは、-d オプションにて実行する時間(秒)を指定する方法です。
# ./nspins -d 30

[まとめ]
nspin は、CPU の負荷を生成するツールで、同時に起動できるプロセス数が指定でき る為、マルチ CPU 環境のテストにも簡単に対応できます。
単に CPU に負荷をかけるデモを行うだけでなく、仮想化環境で CPU 負荷が高い時、システムがどのよう な動作をするか確かめたい場合に nspin を使用すると、とても便利です。

投稿されたコメント:

コメント
  • HTML文法 不許可