RAID(10)でSSD(Intel 530)の読み取り/書き込み速度が非常に遅い


11

説明:

サーバーがあります:

  • モデル:HP ProLiant DL160 G6
  • 4 x 240GB SSD(RAID-10)
  • 72GB DDR3 RAM
  • 2 x L5639
  • HP P410 RAIDコントローラー(256MB、V6.40、Romバージョン:8.40.41.00)

SSDドライブは、540MB / sの読み取り速度と490MB / sの書き込み速度を備えた4つの新しい2.5インチIntel 530です。

  • CentOS 6
  • ファイルシステムはext4です

しかし、これはRAID 10の読み取り速度のテスト結果です。

hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  824 MB in  3.00 seconds = 274.50 MB/sec
[root@localhost ~]# hdparm -t /dev/mapper/vg_localhost-lv_root

/dev/mapper/vg_localhost-lv_root:
 Timing buffered disk reads:  800 MB in  3.01 seconds = 266.19 MB/sec

これは書き込み速度のためです:

dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 4.91077 s, 109 MB/s

RAID 10で1GBの読み取り速度を期待していましたが、270MBは単一ディスクの速度でさえありません!

質問:

  1. なぜそんなに遅いのですか?
  2. RAIDコントローラーが原因ですか?

更新1-同じ読み取り/書き込み速度:

回答に記載されているようにいくつかの設定を変更した後、以下の結果が得られます:

(読み取り速度として400MBではなく4GBと表示される理由は誰でも知っていますか?!)

編集:コマンドが間違っていたようで、この量のRAMに-s144gを使用する必要がありました、それが4GBを示す理由です(ewwhiteのコメントで提案されているように)

[root@192 ~]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Iozone: Performance Test of File I/O
                Version $Revision: 3.408 $
                Compiled for 64 bit mode.
                Build: linux

        Record Size 1024 KB
        File size set to 58720256 KB
        Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Output is in Kbytes/sec
        Each process writes a 58720256 Kbyte file in 1024 Kbyte records

        Children see throughput for  1 initial writers  =  135331.80 KB/sec
        Children see throughput for  1 rewriters        =  124085.66 KB/sec
        Children see throughput for  1 readers          = 4732046.50 KB/sec
        Children see throughput for 1 re-readers        = 4741508.00 KB/sec
        Children see throughput for 1 random readers    = 4590884.50 KB/sec
        Children see throughput for 1 random writers    =  124082.41 KB/sec

しかし、古いhdparm -t /dev/sdaコマンドはまだ表示されます:

バッファリングされたディスク読み取りのタイミング:3.00秒で810 MB = 269.85 MB /秒

更新2(tuned-utilsパック)-読み取り速度が600MB / sになりました:

最後に、Raid Controllerからキャッシュを無効にし、運のない他のことをいくつか行ったが、サーバーをリロードしてOSを再インストールしたため、ewwhiteの回答で示唆されているように「tuned-utils」をインストールするのを忘れました(ありがとうあなたが提案したこの素晴らしいパッケージのewwhite)

プロファイルをインストールtuned-utilsして選択した後enterprise-storage、読み取り速度は約600MB / s +になりましたが、書き込み速度は非常に遅い(〜160MB)(:

iozone -t1 -i0 -i1 -i2 -r1m -s144gコマンドの結果は次のとおりです。

    Children see throughput for  1 initial writers  =  165331.80 KB/sec
    Children see throughput for  1 rewriters        =  115734.91 KB/sec
    Children see throughput for  1 readers          =  719323.81 KB/sec
    Children see throughput for 1 re-readers        =  732008.56 KB/sec
    Children see throughput for 1 random readers    =  549284.69 KB/sec
    Children see throughput for 1 random writers    =  116389.76 KB/sec

でも持つhdparm -t /dev/sdaコマンド我々は持っています:

バッファリングされたディスク読み取りのタイミング:3.00秒で1802 MB = 600.37 MB /秒

非常に遅い書き込み速度についての提案はありますか?

更新3-コメントで要求されるいくつかの情報:

書き込み速度はまだ非常に遅い(1台のディスクの1/3でもない150MB / s)

用の出力df -hfdisk -l

[root@192 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       441G  3.2G  415G   1% /
tmpfs            36G     0   36G   0% /dev/shm


[root@192 ~]# fdisk -l
Disk /dev/sda: 480.0 GB, 480047620096 bytes
255 heads, 63 sectors/track, 58362 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00040c3c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       58363   468795392   83  Linux

このテストでは、おそらくサーバーにインストールされているRAMの2倍の量を指定する必要があります。
ewwhite

Smart Array P410コントローラーのファームウェアバージョンを教えてください。
ewwhite

@ewwhiteコメントありがとう、ファームウェアバージョンはp410(256MB、V6.40)、ROMバージョンは8.40.41.00です。iozoneコマンドは間違っていましたか?はいの場合、テストする正しいコマンドを教えていただけますか?試しているすべてがGBで読み取り速度を取得するため
アラ

ここで何かが非常に間違っています。最大122MB / sの書き込みしか得られません。表示される4GB / sの数値はキャッシュからの操作なので、コマンド文字列はのようになりiozone -t1 -i0 -i1 -i2 -r1m -s144gます。:(
ewwhite

@ewwhiteどうもありがとう、読み取り速度は非常に良いです(私の質問では更新2として詳しく説明しています)が、書き込み速度は非常に残念です。そのための提案はありますか?
アラ

回答:


16

ここでの他の答えはいくつかの点を上げていますが、あなたの特定の問題はプラットフォームの制限とOS構成によるものです:

  • HP SmartアレイP410 RAIDコントローラーコンシューマー SATA SSDを使用することにより、スループットが制限されます。これらのコントローラーでは、SATAディスクは6.0Gbps(6G)ではなく3.0Gbps(3G)で実行されます。そのため、これがIntel SSDの読み取り速度に影響を与える障壁です。ドライブあたり300MB / s以下。

  • SmartアレイP410コントローラーには、SSDとともに使用する場合に固有の要件とベストプラクティスがあります。要するに、コントローラーは50,000 IOPSに対応し、SSDボリュームのアレイアクセラレーターを無効にし、パフォーマンスは最大6台のドライブで最高になります。

  • ディスクのパフォーマンスは、常にシーケンシャルな読み取り/書き込み速度とは限りません。iozone bonnie ++などの適切なツールでベンチマークを試してください。それでも、複数のドライブのランダムI / Oの利点が得られます。

  • オペレーティングシステムレベルで、tuned-utilsパッケージをインストールenterprise-performanceし、ファイルシステムから書き込みバリアを削除するようにプロファイルを設定し、セットアップに適切なI / Oエレベーターを設定します。これについては、他の質問にも記載されています。

  • LVMを使用しているようです。それも影響を与える可能性があります...

同じHP SmartアレイP410 RAIDコントローラーで4つの コンシューマー6G SATA SSD(3G速度にダウンシフト)を実行しているG7 ProLiantのiozoneレポートを次に示します。

〜470MB / sの書き込みと650MB / s +の読み取りが表示されるはずです。

[root@mdmarra /data/tmp]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Iozone: Performance Test of File I/O
                Version $Revision: 3.394 $
                Compiled for 64 bit mode.
                Build: linux 

        Record Size 1024 KB
        File size set to 58720256 KB
        Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Output is in Kbytes/sec
        Each process writes a 58720256 Kbyte file in 1024 Kbyte records

        Children see throughput for  1 initial writers  =  478209.81 KB/sec
        Children see throughput for  1 rewriters        =  478200.84 KB/sec
        Children see throughput for  1 readers          =  677397.69 KB/sec
        Children see throughput for 1 re-readers        =  679523.88 KB/sec
        Children see throughput for 1 random readers    =  437344.78 KB/sec
        Children see throughput for 1 random writers    =  486254.41 KB/sec

モデルは「DL160 G6」です。はい、バックプレーンが含まれています:(ここに600MBでも満足ですが、270MBは本当に遅いです、あなたがすべきと思うことは、ソフトウェアレイドは役立ちますか?
Ara

2
さて、DL160 G6では、RAIDコントローラーからドライブバックプレーンまでの2本のケーブルが必要です... 8ドライブスロット。ここでの問題は、ドライブのスループット、テスト方法、およびサーバーの設定です。私が答えに挙げた他の提案を試してください。
ewwhite

SATAで3Gのみを実行するP410と、特定のベストプラクティスに関する興味深い点。Modアップ。:(LVMは、しかしまた、ここで注目マイナスのパフォーマンスへの影響の観点から、中の重打者すべきではない unix.stackexchange.com/questions/7122/...
ローマ

1
@Ara ProLiant用の6G SATAコントローラーはありません。それがポイントです。SAS SSD を使用しない限り、SSDはこのプラットフォームで3Gの速度でのみ動作します。
ewwhite

1
@Ara Software RAIDは、SAS HBA(LSI 9211-8iなど)などの別のコントローラーへの接続を必要とします...ディスクの全帯域幅を確認できますが、SSDのパフォーマンスには純粋なもの以外の側面もあります順次読み取り/書き込み帯域幅。
ewwhite

12

ああ、どこから始めればいいの?

非常に多くの関与があり、すべてを十分に理解する必要があります。RAIDコントローラに対して多数のディスクを投げるだけでは、探している結果が得られません。

これは簡単には答えられません。しかし、少なくとも、ここにあなたが見なければならないもののリストがあります:

  • コントローラーには必要なスループットもありますか?(->データシート)
  • コントローラーはホストに対して十分な帯域幅さえ持っていますか(v1.0でもx8であるため)
  • システムのチップセットに十分なスループットがありますか(CPUコントローラー)?(わからない)
  • コントローラーに採用するように指示した書き込み戦略は何ですか?(これはおそらくあなたを噛んだものです
  • すべてが揃っていますか(パーティション開始、LV、PV)?
  • ブロックサイズは調和していますか?(RAIDストライプサイズ、ブロックサイズ、FSブロックなど)
  • ファイルシステムはRAIDセットアップに最適化されていますか?(レベルとブロックサイズ)

(FSを無視して)RAID全体に対するスループットは単一のディスクよりもかなり低いため、書き込み戦略を誤って設定した可能性があります。コントローラーはおそらくすべてのディスクが書き込みを確認するのを待っています(コントローラーのバッテリーのRAMがバックアップされていない限り、これはあなたの最大の関心事かもしれません)。


これは私が思っていたよりも本当に難しく、Raid Controller ramを512MBにアップグレードするのと同じくらい簡単だと思いました!、ありがとうロマン、理由を見つけることを望んであなたがちょうど言ったことのいくつかをチェックさせてください
アラ

上記のほとんどは、エッジケースの有効なトラブルシューティング戦略ですが、元のポスターの構成の詳細には適用されません。ここでのコントローラーには必要なスループットと帯域幅があり、CPUは問題ありません、RAIDコントローラーはデフォルトで25:75 R / Wキャッシュ比(SSDの使用のために完全に無効にする必要があります)、CentOS6はパーティションを正しく調整し、取得するには潜在的な抽象化が多すぎますブロックサイズは「調和」しています。目前の3つの問題は、6Gディスクが3Gの速度で調整されていること、ファイルシステムの書き込みバリアがおそらく有効になっていること、およびI / OエレベータがデフォルトのCFQであることです。
ewwhite

1
残念ながら、サーバーモデルは回答の時点では言及されていませんでした。調整について知っておくと便利です。この特定の「ベンチマーク」では、障壁とCFQにそれほど費用はかかりませんでしたが、それでも貴重な情報です。
ローマ

@Roman私は以前のモデルに言及しませんでした申し訳ありませんが、私は本当にあなたの助けに感謝、私はそれは私がこの3Gの制限を達することができる最高速度だと思う、500〜600メガバイトに到達するためにあなたとewwhiteのガイドの両方をしようとしている
アラ

1
全く問題なし。SSDと組み合わせてP410を使用すると特定のことができるため、ewwhiteの回答のリンクを必ず確認してください。また、バックプレーンからコントローラーへの2つの接続に4つのディスクを均等に分散させるようにしてください。
ローマ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.