ディスク入出力の性能分析事例紹介


表1.ポイントと項目

No ポイント コマンドとオプション 内容
@ カーネルチューニングの効果 format -e ディスクライトキャッシュの設定
mount noatime マウント時オプションの指定
/etc/system setコマンドによるカーネルパッチ


@カーネルチューニングの効果

現在判明している、代表的なディスク入出力関連カーネルチューニングパラメタを、表1.1に示します。本事例では、これらを設定することで、ディスク入出力関連の性能値がどのように変化するのかを紹介します。テストシナリオ番号は、9から18番です。

表1.1 ディスク入出力関連のカーネルチューニングパラメタ。

チューニング
条件の番号
パラメタ 省略時値 設定値 内容
(1) write_cache enable disable enable formatコマンドで設定するディスクの書き込みキャッシュです。
(2) noatime - mountオプションに設定する読み取り時iノード更新をしないようにするパラメタです。
(3) maxphys 131,072 1,048,576 1回のライトで書き込むことのできる最大バイト長です。
(4) ufs_LW 262,144 33,554,432 書き込み時に検査される下限のウォータマークです。
(5) ufs_HW 393,216 67,108,864 書き込み時に検査される上限のウォータマークです。
(6) ncsize 67,612 513,978 ディレクトリ名検索キャッシュ(DNLC)の最大個数です。最大値はメモリの空きサイズによって決定されます。ncsizeはUFSとVxFSファイルシステムのiノード数にセットされます。UFSファイルシステムで設定値よりも大きな値をセットする場合は、ufs_inode_maxと、ufs_ninodeパラメタの両方に指定する必要があります。ncsizeのカーネルパラメタチューニングは、ディレクトリ名検索キャッシュ(DNLC)とUFSメモリiノードの設定についてをご覧ください。


ddコマンドは、ファイルコピー、またはコード変換を行うものです。基本的に、入力(読み取り)と出力(書き込み)の処理になります。findコマンドは、所定のパラメタに従ってファイル情報を表示するもので、読み取りに特化する処理になります。本事例では、この2つのコマンドを使用して、カーネルチューニングパラメタを設定し、各種性能情報を確認することにします。表1.2はddコマンド、表1.3はfindコマンドの、カーネルパラメタチューニングによるエラプス時間とCPU時間を示しています。SIDはテストシナリオ番号です。テストシナリオ番号の15、16、および18番に効果が現れています。

表1.2 ddコマンド:読み取りと書き込み処理

SID エラプス時間 CPU時間(秒) CPU率 write_
cache
enable
no
atime
maxphys ufs_LW ufs_HW ncache
分:秒 sys user rate%
9 3:45 224.64 64.94 20.81 38.17          
10 3:15 194.88 64.08 20.84 43.58        
11 4:00 240.48 64.40 21.45 35.70            
12 4:06 245.60 65.72 20.42 35.07          
13 2:28 148.08 64.58 20.98 57.78        
14 2:30 149.92 63.89 21.46 56.93      
15 2:20 140.16 63.31 20.48 59.78  
16 2:23 143.04 63.19 20.69 58.64
17 3:13 193.36 63.73 20.62 43.62      
18 2:20 140.08 63.43 20.94 60.23


表1.3 findコマンド:読み取りに特化した処理

SID エラプス時間 CPU時間(秒) CPU率 write_
cache
enable
no
atime
maxphys ufs_LW ufs_HW ncache
分:秒 sys user rate%
9 8:21 500.88 24.19 3.17 5.46          
10 7:20 440.24 23.49 3.39 6.11        
11 8:19 498.56 23.40 3.32 5.36            
12 8:24 503.84 23.64 3.37 5.36          
13 7:46 466.08 23.52 3.04 5.70        
14 7:40 460.24 24.04 3.37 5.96      
15 6:51 410.72 24.18 3.03 6.62  
16 6:50 410.24 23.70 3.66 6.67
17 7:19 438.56 23.71 3.36 6.17         
18 6:52 411.68 23.37 3.14 6.44


表1.4は、カーネルパラメタチューニングによってどのような向上が見られるのかを示しています。

表1.4 カーネルパラメタチューニングの評価

SID チューニング項目 ddコマンド findコマンド 評価
短縮秒 向上率(%) 短縮秒 向上率(%)
9 (1)wirte_cache enable △ 16 △ 6.59 ▼ 2 ▼ 0.47 書き込みにわずかな性能向上が認められます。
10 (1)write_cache enable
(2)noatime
△ 46 △18.96 △58 △11.70 ディレクトリ読み取り時のiノード更新が無い分、性能向上が認められます。
11 チューニング無し ± 0 ± 0.00 ± 0 ± 0.00 基準値です。
12 (3)maxphys ▼ 5 ▼ 2.13 ▼ 5 ▼ 1.06 maxphys単独のチューニングでは、性能向上は認められません。
13 (4)ufs_LW
(5)ufs_HW
△ 92 △38.42 △32 △ 6.51 ddコマンドは約38パーセント、findコマンドは約7パーセント向上が認められます。書き込みするddコマンドに大きな向上が認められます。
14 (3)maxphys
(4)ufs_LW
(5)ufs_HW
△ 91 △37.66 △38 △ 7.69 ddコマンドは約38パーセント向上しています。テストシナリオ番号13と大きな変化は無いため、maxphysの効果はないようです。
15 (1)write_cahce enable
(2)noatime
(3)maxphys
(4)ufs_LW
(5)ufs_HW
△100 △41.72 △88 △17.62 ddコマンドは約42パーセント向上しています。findコマンドでは約18パーセント向上しており、にnoatimeの効果が現れているようです。
16 (1)write_cache enable
(2)noatime
(3)maxphys
(4)ufs_LW
(5)ufs_HW
(6)ncsize
△ 97 △40.52 △88 △17.72 ddコマンドでは約41パーセント向上しています。テストシナリオ番号14、および15と大きな変化は認められないことが分かります。ncsizeの増加は不十分でした。
17 (1)write_cache enable
(2)noatime
(3)ncsize
△ 47 △19.59 △60 △12.03 ddコマンドは約20パーセント向上しています。findコマンドは約12パーセント向上しています。ncsizeの増加は十分です。
18 (1)write_cache enable
(2)noatime
(3)maxphys
(4)ufs_LW
(5)ufs_HW
(6)ncsize
△100 △41.75 △87 △17.43 ddコマンドは約42パーセント向上しています。findコマンドは約17パーセントで、テストシナリオ番号15、および16とほぼ同じ水準です。ncsizeの増加は十分です。

以上のように、カーネルチューニングで大きな効果が現れることが分かりますが、ご注意いただきたい点が一つあります。本テストベッドは単一ディスク環境のため、RAID構成、複数チャネル構成等、他の環境でどう変化するかは見えないことです。また、向上値を保証するものではありません。このため、もし何れかのパラメタを設定する場合は、充分なテストを実施の上、本番環境に適用するようお願いいたします。


Copyright (C) 2004 by The Art of Computer Technologies, Corp.  All rights reserved.