HP DL380 G7 + Smart Array P410i + sysbench-> RAID 10のパフォーマンスが低い


8

IO使用率が低い実行中のシステムがあります。

  1. HP DL380G7(24 GB RAM)
  2. Smartアレイp410i、512 MBのバタリーバックアップライトキャッシュ
  3. RAID10のSAS 10k rpm 146GBドライブx 6
  4. Debian Squeze linux、ext4 + LVM、hpacucliがインストールされている

iostat(cciss / c0d1 = raid10アレイ、dm-7 =テスト用60G lvmパーティション):

デバイス:rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz await svctm%util
cciss / c0d0 0,00 101,20 0,00 6,20 0,00 0,42 138,58 0,00 0,00 0,00 0,00
cciss / c0d1 0,00 395,20 3,20 130,20 0,18 2,05 34,29 0,04 0,26 0,16 2,08
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-2 0,00 0,00 3,20 391,00 0,18 1,53 8,87 0,04 0,11 0,05 1,84
dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-4 0,00 0,00 0,00 106,80 0,00 0,42 8,00 0,00 0,00 0,00 0,00
dm-5 0,00 0,00 0,00 0,60 0,00 0,00 8,00 0,00 0,00 0,00 0,00
dm-6 0,00 0,00 0,00 2,80 0,00 0,01 8,00 0,00 0,00 0,00 0,00
dm-1 0,00 0,00 0,00 132,00 0,00 0,52 8,00 0,00 0,02 0,01 0,16
dm-7 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

hpacucli "ctrl all show config"

スロット0のSmartアレイP410i(埋め込み)(SN:5001438011FF14E0)

   アレイA(SAS、未使用スペース:0 MB)


      論理ドライブ1(136.7 GB、RAID 1、OK)

      物理ドライブ1I:1:1(ポート1I:ボックス1:ベイ1、SAS、146 GB、OK)
      物理ドライブ1I:1:2(ポート1I:ボックス1:ベイ2、SAS、146 GB、OK)

   アレイB(SAS、未使用スペース:0 MB)


      論理ドライブ2(410.1 GB、RAID 1 + 0、OK)

      physicaldrive 1I:1:3(ポート1I:box 1:ベイ3、SAS、146 GB、OK)
      物理ドライブ1I:1:4(ポート1I:ボックス1:ベイ4、SAS、146 GB、OK)
      物理ドライブ2I:1:5(ポート2I:ボックス1:ベイ5、SAS、146 GB、OK)
      物理ドライブ2I:1:6(ポート2I:ボックス1:ベイ6、SAS、146 GB、OK)
      physicaldrive 2I:1:7(ポート2I:box 1:ベイ7、SAS、146 GB、OK)
      物理ドライブ2I:1:8(ポート2I:ボックス1:ベイ8、SAS、146 GB、OK)

   SEP(ベンダーID PMCSIERA、モデルSRC 8x6G)250(WWID:5001438011FF14EF)

hpacucli "ctrl all show status"

スロット0のSmartアレイP410i(埋め込み)
   コントローラのステータス:OK
   キャッシュステータス:OK
   バッテリー/コンデンサのステータス:OK

Sysbenchコマンド

sysbench --init-rng = on --test = fileio --num-threads = 16 --file-num = 128 --file-block-size = 4K --file-total-size = 54G --file-test -mode = rndrd --file-fsync-freq = 0 --file-fsync-end = off run --max-requests = 30000

Sysbenchの結果

sysbench 0.4.12:マルチスレッドシステム評価ベンチマーク

次のオプションを使用してテストを実行します。
スレッド数:16
タイマーから乱数ジェネレータを初期化しています。


追加のファイルオープンフラグ:0
128ファイル、各432Mb
54 GBの合計ファイルサイズ
ブロックサイズ4Kb
ランダムIOのランダムリクエスト数:30000
組み合わせランダムIOテストの読み取り/書き込み比率:1.50
同期I / Oモードの使用
ランダム読み取りテストを行う
スレッドが始まりました!
できました。

実行される操作:30000読み取り、0書き込み、0その他=合計30000
読み取り117.19Mb書き込み0b転送された合計117.19Mb(935.71Kb /秒)
  233.93リクエスト/秒実行

テスト実行の要約:
    合計時間:128.2455秒
    イベントの総数:30000
    イベントの実行にかかった合計時間:2051.5525
    リクエストごとの統計:
         最小:0.00ms
         平均:68.39ms
         最大:2010.15ms
         約 95パーセンタイル:660.40ms

スレッドの公平性:
    イベント(avg / stddev):1875.0000 / 111.75
    実行時間(avg / stddev):128.2220 / 0.02

テスト中のiostat

avg-cpu:%user%nice%system%iowait%steal%idle
           0,00 0,01 0,10 31,03 0,00 68,86

デバイス:rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz await svctm%util
cciss / c0d0 0,00 0,10 0,00 0,60 0,00 0,00 9,33 0,00 0,00 0,00 0,00
cciss / c0d1 0,00 46,30 208,50 1,30 0,82 0,10 8,99 29,03 119,75 4,77 100,00
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-2 0,00 0,00 0,00 51,60 0,00 0,20 8,00 49,72 877,26 19,38 100,00
dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-4 0,00 0,00 0,00 0,70 0,00 0,00 8,00 0,00 0,00 0,00 0,00
dm-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-6 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100,00
dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100,00
dm-7 0,00 0,00 208,50 0,00 0,82 0,00 8,04 25,00 75,29 4,80 100,00
dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

Bonnie ++ v1.96

cmd:/ usr / sbin / bonnie ++ -c 16 -n 0

一度に1バイトを書き込む...完了
インテリジェントに書く...完了
書き換え中...完了
一度に1バイトを読み取る...完了
インテリジェントに読む...完了
開始します...完了...完了...完了...完了...完了...完了...
バージョン1.96 ------順次出力-------順次入力--ランダム-
同時実行性16 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
マシンサイズK /秒%CP K /秒%CP K /秒%CP K /秒%CP K /秒%CP /秒%CP
seo-db 48304M 819 99 188274 17 98395 8 2652 78 201280 8 265.2 1
レイテンシ14899us 726ms 15194ms 100ms 122ms 665ms

1.96,1.96、seo-db、16,1337541936,48304M ,, 819,99,188274,17,98395,8,2652,78,201280,8,265.2,1 ,,,,,,,,,,,,, ,,,, 14899us、726ms、15194ms、100ms、122ms、665ms ,,,,,

ご質問

したがって、sysbenchは毎秒234回のランダム読み取りを示しました。
少なくとも400になる
と思います。ボトルネックになるものは何ですか?LVM?
mdadm raid1 + 2x 7200rpmドライブを備えた別のシステムは、毎秒200以上のランダム読み取りを示しています...

助けてくれてありがとう!


ストライプサイズとは何ですか?iostatは、sysbenchが1つの物理ドライブでのみ動作しているかのように見えます。
ドミトリチュバロフ

hpacucliによると、そのストリップサイズは256kです。iostatのDM-xデバイスは物理ドライブではなく、lvmパーティションです。DM-7は60GBのLVMパーティションで、sysbenchを実行しました。
Oleg Golovanov

この特定のsysbenchコマンドラインで正確に何をテストしていますか?実際の使用シナリオをシミュレートしていますか?
ewwhite 2012年

内部的に4kbブロックを使用するPostgreSqlデータベースをシミュレートしています。私のアプリはビッグデータファイルに対してランダムな読み取り/書き込みを大量に行います(テスト時にアプリは停止しました)
Oleg Golovanov

回答:


10

ご使用のシステムは、ハードウェア仕様に基づいて確実にパフォーマンスが低下しています。sysbenchCentOS 5/6を実行しているいくつかのアイドル状態のHP ProLiant DL380 G6 / G7サーバーにユーティリティをロードして、パフォーマンスを確認しました。これらはLVMではなく通常の固定パーティションです。(HP Smartアレイコントローラーによって提供される柔軟性のため、私は通常LVMを使用しません)

DL380 G6は、512MBのバッテリバックアップ式キャッシュを備えたSmartアレイP410コントローラーに6ディスクのRAID 1 + 0アレイを備えています。DL380 G7には2ディスクのエンタープライズSLC SSDアレイがあります。ファイルシステムはXFSです。私はあなたがしたのと同じsysbenchコマンドラインを使いました:

sysbench --init-rng=on --test=fileio --num-threads=16 --file-num=128 --file-block-size=4K --file-total-size=54G --file-test-mode=rndrd --file-fsync-freq=0 --file-fsync-end=off --max-requests=30000 run

私の結果は、6ディスク全体で1秒あたり1595回のランダム読み取りでした。
SSDでは、結果は39047ランダム読み取り/秒でした。完全な結果はこの投稿の最後にあります...

  • あなたのセットアップに関して言えば、私が最初に飛び出すのは、テストパーティションのサイズです。60 GBのパーティションを54 GBのテストファイルでほぼいっぱいにしています。ext4で90 +%のパフォーマンスに問題があるかどうかはわかりませんが、修正して再テストするのが最も早い方法です。(またはより少ないテストデータセットを使用)

  • LVMを使用する場合でも、このコントローラー/ディスク設定で使用できるいくつかのチューニングオプションがあります。先読みを確認し、I / Oスケジューラ設定をデフォルトのcfqからdeadlineまたはnoopに変更すると役立ちます。Linuxの質問と回答を参照してください。実際のハードウェアRAIDコントローラーのチューニング(SCSIおよびCCISS)

  • RAIDコントローラのキャッシュ比率はどれくらいですか?通常、75%/ 25%の書き込み/読み取りバランスを使用します。これは簡単なテストです。6ディスクアレイは18秒で完了しました。あなたのものは2分以上かかりました。

  • 問題のパーティション/アレイでbonnie ++またはiozoneテストを実行できますか?システムに他のボトルネックがあるかどうかを確認すると役立ちます。私はsysbenchに精通していませんでしたが、これらの他のツールを使用すると、システムの機能の概要がよくわかると思います。

  • ファイルシステムのマウントオプションによって多少の違いが生じる可能性がありますが、問題はそれよりも深い可能性があります...

hpacucli出力...

Smart Array P410i in Slot 0 (Embedded)    (sn: 50123456789ABCDE)

   array A (SAS, Unused Space: 0 MB)

      logicaldrive 1 (838.1 GB, RAID 1+0, OK)

      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)
      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 300 GB, OK)
      physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 300 GB, OK)
      physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 300 GB, OK)

   SEP (Vendor ID PMCSIERA, Model  SRC 8x6G) 250 (WWID: 50123456789ABCED)

sysbench DL380 G6 6ディスクの結果...

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 16
Initializing random number generator from timer.

Extra file open flags: 0
128 files, 432Mb each
54Gb total file size
Block size 4Kb
Number of random requests for random IO: 30000
Read/Write ratio for combined random IO test: 1.50
Using synchronous I/O mode
Doing random read test
Threads started!
Done.

Operations performed:  30001 Read, 0 Write, 0 Other = 30001 Total
Read 117.19Mb  Written 0b  Total transferred 117.19Mb  (6.2292Mb/sec)
 1594.67 Requests/sec executed

Test execution summary:
    total time:                          18.8133s
    total number of events:              30001
    total time taken by event execution: 300.7545
    per-request statistics:
         min:                                  0.00ms
         avg:                                 10.02ms
         max:                                277.41ms
         approx.  95 percentile:              25.58ms

Threads fairness:
    events (avg/stddev):           1875.0625/41.46
    execution time (avg/stddev):   18.7972/0.01

sysbench DL380 G7 SSDの結果...

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 16
Initializing random number generator from timer.


Extra file open flags: 0
128 files, 432Mb each
54Gb total file size
Block size 4Kb
Number of random requests for random IO: 30000
Read/Write ratio for combined random IO test: 1.50
Using synchronous I/O mode
Doing random read test
Threads started!
Done.

Operations performed:  30038 Read, 0 Write, 0 Other = 30038 Total
Read 117.34Mb  Written 0b  Total transferred 117.34Mb  (152.53Mb/sec)
39046.89 Requests/sec executed

Test execution summary:
    total time:                          0.7693s
    total number of events:              30038
    total time taken by event execution: 12.2631
    per-request statistics:
         min:                                  0.00ms
         avg:                                  0.41ms
         max:                                  1.89ms
         approx.  95 percentile:               0.57ms

Threads fairness:
    events (avg/stddev):           1877.3750/15.59
    execution time (avg/stddev):   0.7664/0.00

詳細な回答をありがとう!あなたの結果は素晴らしいです。>>私は通常、特にHP RAIDコントローラーによって提供される柔軟性でLVMを使用しません。どのような柔軟性を意味しますか?>> RAIDコントローラのキャッシュ比率はどれくらいですか?75/25、デフォルト)>>問題はそれよりも深いと思います...うん!私のメインの投稿の最後にbonnie ++ v1.96の結果を追加しました。結果が良いようではないようです:(最初に私はLVMから離れて取得し、再度テストを実行しようとするでしょう、それは助けにはなりません場合は- 。私は、RAIDコントローラと何か間違っがある、と仮定します。
オレグ・ゴロバノーブ

bonnie++コマンドラインを表示できますか?
ewwhite 2012年

すみません。コマンドライン:/ usr / sbin / bonnie ++ -c 16 -n 0
Oleg Golovanov

3
スケジューラをcfqからnoopに変更し、ベンチマーク結果が劇的に増加しました!))現在、sysbenchは1500回以上のランダム読み取り/秒を示しています...大いに感謝します:)
Oleg Golovanov

1
また、試してみてくださいdeadline... DBの負荷noop/sys/block/cciss1/queue/iosched/かかっている場合は、よりも実行速度が向上する可能性がありますdeadline。微調整の詳細については、この投稿参照してください。そうすることで、毎秒最大2600回のランダム読み取りのテストを取得できました。
ewwhite 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.