しげふみメモ


おもにIT関連について、気になったことや試してみたことをメモしておきます。
Linux, Firefox, Thunderbird, Blog, Google, Amazon, Affiliate, iPod, PC, English ...

2007年09月

Linux Test Projectのツールでシステム負荷テスト

前回の記事(Linux Test Projectのツールでカーネルテスト)から1ヶ月近くあいてしまいました。
仕事が忙しく、かなりの負荷がかかってBlogを書く気力がありませんでした。

今回は、Linux Test Project の LTP test suite を使ってシステムに負荷をかけてみた話。
testscripts/ltpstress.sh を使います。

# testscripts/ltpstress.sh -h
Help info:
usage: ltpstress.sh [ -d datafile ] [ -i # (in seconds) ] [ -I iofile ] [ -l logfile ] [ -m # (in Mb) ] [ -n ] [ -t duration ] [ [-S]|[-T] ]

    -d datafile     Data file for 'sar' or 'top' to log to. Default is "/tmp/ltpstress.data".
    -i # (in sec)   Interval that 'sar' or 'top' should take snapshots. Default is 10 seconds.
    -I iofile       Log results of 'iostat' to a file every interval. Default is "/tmp/ltpstress.iodata".
    -l logfile      Log results of test in a logfile. Default is "/tmp/ltpstress.log"
    -m # (in Mb)    Specify the _minimum_ memory load of # megabytes in background. Default is all the RAM + 1/2 swap.
    -n              Disable networking stress.
    -S              Use 'sar' to measure data. 
    -T              Use LTP's modified 'top' tool to measure data.
    -t duration     Execute the testsuite for given duration in hours. Default is 24.

example: ltpstress.sh -d /tmp/sardata -l /tmp/ltplog.8443 -m 128 -t 24 -S

例えば、以下のように実行。

# testscripts/ltpstress.sh -n -t 1 -S

カーネルと関連機能のテストが3並列で実行され、さらに genload というプログラムで負荷がかかっています。
ltp-full-20070731/tools/genload/ 以下を見ると、これは stressでLinuxシステムの負荷テスト で紹介した stress と同じですね。

実行中のある時点の topは以下のような感じ。

# top -n 1
top - 12:17:32 up 25 min,  2 users,  load average: 29.55, 16.11, 6.53
Tasks: 120 total,  22 running,  98 sleeping,   0 stopped,   0 zombie
Cpu(s): 11.2% us,  3.7% sy,  0.0% ni, 84.1% id,  0.9% wa,  0.0% hi,  0.0% si
Mem:  16399164k total,  8644208k used,  7754956k free,    49124k buffers
Swap:  2040212k total,        0k used,  2040212k free,   121216k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND        
 4703 root      25   0 1028m 217m  180 R   30  1.4   0:43.28 genload        
 4711 root      25   0 1028m 253m  180 R   30  1.6   0:43.51 genload        
 4710 root      25   0 1028m 654m  180 R   26  4.1   0:41.04 genload        
 4695 root      25   0  630m 529m  180 R   22  3.3   0:44.50 genload        
12251 root      22   0  124m  15m  540 R   22  0.1   0:00.78 float_trigo    
 4697 root      25   0 1028m 194m  180 R   20  1.2   0:43.21 genload        
 4699 root      25   0 1028m 503m  180 R   20  3.1   0:40.69 genload        
 4700 root      25   0 1028m 988m  180 R   20  6.2   0:42.29 genload        
 4701 root      25   0 1028m 948m  180 R   20  5.9   0:42.79 genload        
 4704 root      25   0 1028m 643m  180 R   20  4.0   0:41.31 genload        
 4705 root      25   0 1028m  30m  180 R   20  0.2   0:42.69 genload        
10955 root      20   0  2532  188  120 R   20  0.0   0:17.01 rename14       
 4698 root      25   0 1028m 3052  180 R   18  0.0   0:42.49 genload        
 4702 root      25   0 1028m 364m  180 R   18  2.3   0:43.88 genload        
 4706 root      25   0 1028m 616m  180 R   18  3.8   0:42.85 genload        
 4707 root      25   0 1028m 683m  180 R   18  4.3   0:41.48 genload        
 4708 root      25   0 1028m 477m  180 R   18  3.0   0:44.58 genload        
 4709 root      25   0 1028m 844m  180 R   18  5.3   0:42.18 genload        
10956 root      25   0  2532  160   92 R   14  0.0   0:11.67 rename14       
 4712 root      25   0 1028m 167m  180 R   10  1.0   0:43.12 genload        
    1 root      16   0  4752  552  460 S    0  0.0   0:01.63 init           
    2 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0    
    3 root      34  19     0    0    0 S    0  0.0   0:00.00 ksoftirqd/0    
    4 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/1    
    5 root      34  19     0    0    0 S    0  0.0   0:00.00 ksoftirqd/1    

終了後に sarデータを確認してみました。

# sar -f /tmp/ltpstress.data
Linux 2.6.9-42.ELsmp (node1)    08/27/07

12:13:56          CPU     %user     %nice   %system   %iowait     %idle
12:14:06          all     83.08      0.00     16.92      0.00      0.00
12:14:16          all     77.12      0.00     22.88      0.00      0.00
 :
 :
13:13:55          all     77.87      0.00     22.13      0.00      0.00
13:14:05          all     78.65      0.00     21.35      0.00      0.00
Average:          all     77.08      0.00     22.92      0.00      0.00
# sar -r -f /tmp/ltpstress.data
Linux 2.6.9-42.ELsmp (node1)    08/27/07

12:13:56    kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
12:14:06      5227956  11171208     68.12     11996     96192   2040212         0      0.00         0
12:14:16     11790276   4608888     28.10     12476     99520   2040212         0      0.00         0
 :
 :
13:13:55      4648276  11750888     71.66    219932    140808   2040212         0      0.00         0
13:14:05      9115108   7284056     44.42    219936    140872   2040212         0      0.00         0
Average:      7081948   9317216     56.82    156001    171539   2040214         0      0.00         0

いい感じにストレスがかかっています。

Linux Test Projectのツールでカーネルテスト

先日の記事で stressでLinuxシステムの負荷テストを試してみました。
今回は、Linux Test Project の LTP test suite を試してみました。

Linux Test Projectは、Linuxの信頼性、堅牢性、および安定性を検証するオープンソースコミュニティにテストスイートを提供するプロジェクトということです。
LTP test suiteは、Linuxカーネルと関連機能をテストするための一連のツールです。
参考
IBM Linuxカーネルのストレス・テスト

ダウンロード後、以下のようにして簡単にインストール完了。
makeで lex が無いと言われた場合は、flexパッケージをインストール。
make install すると、testcases/bin 以下に色々とインストールされるようです。

# tar xzf ltp-full-20070731.tgz
# cd ltp-full-20070731
# make
# make install

早速、カーネルと関連機能をテストしてみます。
以下を実行すると、ネットワーク関連以外の全てのテストを行います。
もちろん、運用中のサーバではやらないほうがいいです。

# ./runltp -p -q -l /tmp/runltp-log
  • テスト結果は /tmp/runltp-log へ記録。
  • テンポラリファイル等は /tmp/ltp-<PID> 以下に作成される。
  • 一般ユーザで実行した場合は、いくつかのテストが失敗します。
  • 詳しくは ./runltp -h

Xeon Dual Core 3GHz x2, Memory 16GB, RHEL4U4のシステムで実行してみました。

[root@node1 ltp-full-20070731]# ./runltp -p -q -l /tmp/runltp-log
INFO: creating /tmp/ltp-full-20070731/results directory

    INFO: no command files were provided, using default,
          system calls, memory management, IPC, scheduler
          direct io, file system, math and pty tests will 
          now be executed
    
INFO: Test start time: Sun Aug 26 18:04:49 JST 2007
abort01     1  PASS  :  Test passed
accept01    1  PASS  :  bad file descriptor successful
 :
 :
ptem01      6  PASS  :  test6
hangup01    1  PASS  :  Pass
Unshare not supported.  Not running container tests
INFO: pan reported some tests FAIL
LTP Version: LTP-20070731
INFO: Test end time: Sun Aug 26 20:47:09 JST 2007
[root@node1 ltp-full-20070731]# 

2時間40分かかっています。
でも Pentium D 2.66GHz, Memory 512MBの別のマシンでは約1時間弱でした。
この違いは何でしょう?

ログファイルは以下のような感じ。

[root@node1 tmp]# head /tmp/runltp-log
Test Start Time: Sun Aug 26 18:04:49 2007
-----------------------------------------
Testcase                       Result     Exit Value
--------                       ------     ----------
abort01                        PASS       0    
accept01                       PASS       0    
access01                       PASS       0    
access02                       PASS       0    
access03                       PASS       0    
access04                       PASS       0    
[root@node1 tmp]# 
[root@node1 tmp]# tail /tmp/runltp-log
hangup01                       PASS       0    
Containers                     PASS       0    

-----------------------------------------------
Total Tests: 834
Total Failures: 3
Kernel Version: 2.6.9-42.ELsmp
Machine Architecture: x86_64
Hostname: node1

[root@node1 tmp]# 
[root@node1 tmp]# grep -i fail /tmp/runltp-log
inotify01                      FAIL       4    
inotify02                      FAIL       4    
ioperm02                       FAIL       1    
Total Failures: 3
[root@node1 tmp]# 

FAILが3項目ありました。
何故かは詳しく見ていませんが、とりあえず気にしないでおきます。

システム負荷テストをしたい場合は、runltp よりも、testscripts/ltpstress.sh を使うといいかもしれません。
試してみたので、次の記事で書きます。

[2007年 9/29追記]
しげふみメモ:Linux Test Projectのツールでシステム負荷テスト

4822234142Linuxカーネル徹底理解 (日経BPパソコンベストムック)
日経Linux
日経BP出版センター 2007-07-20

by G-Tools
エンジニア転職情報
このBlog内を検索
プロフィール

しげふみ

連絡先
連絡先
RSSリーダーに登録
Subscribe with livedoor Reader

あわせて読みたい
人気blogランキング

  • ライブドアブログ