web-dev-qa-db-ja.com

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

説明:

サーバーがあります:

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

SSDドライブは4つの真新しい2.5インチIntel 530で、540MB /秒の読み取り速度と490MB /秒の書き込み速度

  • 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

レイド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 /秒になりました:

最後にいくつかの希望、私たちはraidコントローラーからキャッシュを無効にし、他のいくつかのことをうまくいかずに以前に行いましたが、サーバーをリロードして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.02秒で1802 MB = 600.37 MB /秒

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

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

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

df -hおよびfdisk -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
11
Ara

ここで他の答えはいくつかのポイントを上げていますが、特定の問題はプラットフォームの制限とOSの構成が原因です。

  • consumerHP Smart Array 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でfourコンシューマ6G SATA SSD (3G速度にダウンシフト)で実行されているG7 ProLiantのiozoneレポートは次のとおりですRAIDコントローラ。

約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
16
ewwhite

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

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

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

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

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

12
Roman