SSD RAIDはRAMディスクよりも高速ですか?


9

したがって、一般的なSSDの読み取り速度は250〜500 mb /秒です。そして、ラムはそれよりも約10倍多くなります。

私の質問です:raid-0の4つのssdsは、何らかの理由で単一のramメモリブロックよりも高速ですか?

ramとramdiskをたくさん使うか、raid-0を使って4つのssdsを使います。どちらが速いですか?

回答:


12

したがって、一般的なSSDの読み取り速度は250〜500 mb /秒です。そして、ラムはそれよりも約10倍多くなります。

どの種類のRAMを参照していますか?確かに最近PCで一般的に使用されているものではないようです。

DDR3 SDRAMの転送速度はごくわずか10 GB /秒(そのためにはDDR3-1333が必要です)で、現在DDR3-2133の場合は約17 GB /秒です。

500 MB /秒を配信できる4つのSSDをストライプ化し、システム全体がそれを処理できるとしましょう(バスの競合なし、システムはI / Oバウンドなど)。これにより、理論上の最大スループットは2 GB /秒になります。4xSSDは、ほぼ10倍の確率で失われます。

DDR3 SDRAMのレイテンシは10 ns領域です。優れたSSDは100k IOPS、トップを提供する可能性があり、これは10,000 nsのレイテンシに変換されます。(たとえば、Intel 530はランダムな4k読み取りに対して41k IOPSを指定しており、これによりほぼ25,000 nsのレイテンシが得られます。)

4つの高速SSDをストライプ化してすべてのオーバーヘッドを無視すると、400k IOPS、つまり2,500 nsのレイテンシが発生する可能性があります。4xSSDは250の係数で負けます。

SSDからのデータはどこかに行く必要があり、その「どこか」がRAMになります。CPUはそこからデータを取得できますが、SSDと直接通信するのは、回転盤ハードディスクドライブと直接通信する場合だけです。

SSDでのバスの競合に悩まされていないと想定する場合、RAMについても同じことを想定することは理にかなっています。これらのメトリックのいずれかにより、SSDはDDR3 SDRAMに比べて非常に遅いという結論につながります。

RAMには他にも欠点があります。SSDと比較しても、ギガバイトあたりのコストは非常に高く、コンテンツを保持するには一定の電力が必要です。また、RAMディスクはオペレーティングシステムのソフトウェアコンストラクトであるため、RAMとまったく同じようには機能しません。RAMのパフォーマンス上の利点はほとんど得られるはずですが、同じ量のRAMが失われるため、システムがより頻繁にスワッピングに頼る必要が生じる可能性があり(これはパフォーマンスのための死刑判決です)、それはおそらく起こりませんraw RAMとまったく同じパフォーマンスを提供します。


それは、その後でRAMディスク...
Koray Tugay

1
@KorayTugay絶対的なパフォーマンスが必要な場合は、RAMディスクを使用する必要がありますが、RAMディスクはRAMとまったく同じようには機能せず、独自の欠点があります。 。(また、私は受け入れに感謝しますが、誰かがさらに良い答えを提供できるように、答えを受け入れる前に1日ほど待つことをお勧めします。)
CVn

@KorayTugay:一般的に言えば、「RAMDiskは必要ですか?」ほとんどの場合、「いいえ。本当に必要な場合は、尋ねる必要がないことを十分に理解しています。」あなたはそれが必要だと思うようになりますか?
afrazier

@afrazierの開発/巨大なデータベースでのテストで、何度もアクセスして大量のデータを取得しています。ラムにdbを保持します。私はこれを1日8時間10時間行い、4 5秒待つのがしばらくすると長すぎるように見えます。私はより速くdbを打つ必要があります。
Koray Tugay

5
有能なDBMSは、できるだけ多くのDBをRAMに保持します。DBがRAMディスクに収まるほど小さい場合は、RAMに収まるほど小さいです。SSDを使用してDBMSを適切に調整すると、求めているパフォーマンスが得られます。ローカル開発の場合は、ライトバックキャッシュなどの利点を活用して、ACIDの心配を減らすこともできます。RAMdiskがシステムと戦っています。
afrazier

4

「いいえ」の答えの本当の原因は、2つの違いの比較だけではなく、OSが最終的にSSDから読み取ったデータをキャッシュするためです。これはRAMにキャッシュされます。したがって、SSDからのブロック読み取りは、RAMへのブロック書き込みも意味します。常に。

これが、非常に特殊なハードウェアの組み合わせ(例:非常に高速なSSDが非常に遅いRAMと組み合わされていた)でもRAMディスクが高速である理由です。


1
これが実際の最良の答えです。
ChrisInEdmonton 2014年

sudo zfs set primarycache=none tankRAMベースのキャッシュがあります。(もちろん、ZFSを使用していると仮定します。)
CVn 14年

@MichaelKjörlingそうです、zfs以外の構成でも、読み取りキャッシュをオフにする可能性があります。ただし、この場合でも、$ read()$呼び出しを行うと、実際にはSSDからRAMへのコピーになります。これを回避することはできませんが、CPUキャッシュに何らかの方法で直接データを読み取る場合(つまり、DMAを何らかの方法で回避することを意味します)、AMD CPU(およびIntel)にはメモリマネージャーが統合されているため、若干変更されたバージョンだと思いますどういうわけか。ただし、この場合でも、CPUを変更する必要があります。
peterh-モニカを2016年

3

実際の質問に答えると、いいえ。RAMの帯域幅は桁違いに大きく、待ち時間は桁違いに小さくなっています。それも近くありません。

そのような帯域幅を必要とする非常に具体的なユースケースがない限り、あなたが質問していない質問に答えるために:あなたが計画していることは悪い考えです。この種の速度が本当に必要な場合は、PCIeベースのSSD(ioDriveやIntel 910など)を使用すると、RAID-0のSATA SSDのバッグよりもはるかに高速になります。

現在のSSDは、ボトルネックとなる消費者および愛好家のワークロードに対して十分に高速になります。


実際、DDR3のレイテンシはSSDよりも1桁も低くはありません。それは3〜4桁低いです。実際の数値については、私の回答を参照してください。(ただし、帯域幅の違いは間違いなく
大々的なもの

IOはブロックで発生するため、レイテンシは重要ではありません。少なくとも4Kブロックで。帯域幅は重要です。
peterh-モニカを2014年

@PeterHorvath:SSDの場合、レイテンシは依然として重要です。初期のSSDが抱えていた一貫性と途切れの問題に関するすべての調査とベンチマークを見てください。そして、MichaelKjörlingが述べたように、RAMレイテンシはSSDよりも数桁低いです。Lxキャッシュのレイテンシは大幅に低く、CPUレジスタのレイテンシはさらに低くなっています。そして、それはすべてパフォーマンスにとって重要です。
afrazier 2014年

1

RAMは常に(SATAのような)周辺バスシステムが提供できるものよりも高速です。

しかし、RAMディスクを扱う場合、RAMだけを扱うわけではありません。また、生のRAMをOSがディスクストレージとして認識するものに「変換」することを検討するソフトウェア(ファイルシステムおよびデバイスドライバー)の束もあります。

RAMディスクが実際にどれほど速くなるかは、そのソフトウェアの品質に依存します。

そうは言っても、通常、マザーボードに接続できる最速のストレージソリューションの数倍の速さです。

特定の使用パターンによって差が小さくなるか、ほとんどゼロになるケースもあるかもしれませんが、そのようなシステムで何をしようとしているのかについての詳細がないと、それが状況に当てはまるかどうかを判断することはできません。

PS RAMディスクは揮発性であることを覚えておいてください。マシンのブート後、最初にデータをロードする必要があります。マシンのシャットダウン時に、コンテンツを保存する必要があります(次回の実行で必要な場合)。システムがクラッシュした場合、何も保存せずにRAMディスクを失う。
これは、特に頻繁な再起動が予想される場合は、考慮に入れる必要があります。RAMディスクの内容の保存/再読み込みは簡単なことではありません。


データベースをRAMに保持します。
Koray Tugay
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.