RAMは安価で、SSDよりもはるかに高速です。ただの揮発性です。では、コンピューターに大量のRAMが搭載されていないのに、電源を入れると、ハードドライブ/ SSDからすべてをRAMにロードし、そこからすべてを実行します。コンピューターはもっと速くないでしょうか?
もちろん、現在のオペレーティングシステムはこれをまったくサポートしていないかもしれませんが、RAMがこのように使用されない理由はありますか?
RAMは安価で、SSDよりもはるかに高速です。ただの揮発性です。では、コンピューターに大量のRAMが搭載されていないのに、電源を入れると、ハードドライブ/ SSDからすべてをRAMにロードし、そこからすべてを実行します。コンピューターはもっと速くないでしょうか?
もちろん、現在のオペレーティングシステムはこれをまったくサポートしていないかもしれませんが、RAMがこのように使用されない理由はありますか?
回答:
RAMがそのように使用されない理由はいくつかあります。
そうは言っています:はい、RAMディスクは存在します。DIMMソケットを備えたPCIボードとしても、非常に高いIOpsのアプライアンスとしても。(SSDがオプションになる前に企業データベースで主に使用されていました)。しかし、これらのものは安くはありません。
本番環境になったローエンドRAMディスクカードの2つの例を次に示します。
共通の作業メモリにRAMディスクを作成するだけでなく、これを行う方法が他にもたくさんあることに注意してください。
あなたはできる:
Amiga RADから、生き残ったRAMディスクをIOPSにリセットし、ウェアレベリングとGdが何を知っているかを説明する方法があると確信しています。ただし、これを短くして、もう1つだけ項目をリストします。
DDR3(現在のDRAM)の価格とSSDの価格:
RAM loses its contents when powered off.
正確には、唯一の揮発性RAMは行いますが、不揮発性RAMは、例えばとして、電源オフ時にも、すべてのものを保持してフラッシュチップ。その意味で、SSDはRAMとは異なり、RAMのサブタイプではありません。
オペレーティングシステムは既にページキャッシュを使用してこれを実行しています。
コンピューティングでは、ディスクキャッシュと呼ばれることが多いページキャッシュは、より高速なアクセスのためにオペレーティングシステムによってメインメモリ(RAM)に保持されるディスクバックアップページの「透過的な」キャッシュです。通常、ページキャッシュは、ページングメモリ管理を使用してカーネルに実装され、アプリケーションに対して完全に透過的です。
ディスクからページを読み取ると、オペレーティングシステムはそのデータをメモリにロードし、そのメモリをより有効に使用するまでそこに残します。十分なメモリがある場合、OSは各ページを1回だけ読み取り、それ以降はメモリから使用します。OSが実際のディスクIOを実行する唯一の理由は、まだメモリにないページを読み取る必要がある場合、またはページが書き込まれる場合です(その場合、おそらくディスクに保存する必要があります)。
この方法で行う利点の1つは、ハードドライブ全体をメモリにロードする必要がないことです。これは、収まらない場合に便利です。また、アプリケーションが読み込まないファイルを読む時間を無駄にしないことを意味します。必要。もう1つの利点は、OSがより多くのメモリを必要とするときはいつでもキャッシュを破棄できることです(メモリ不足のためプログラムをクラッシュさせるよりも、次のディスクの読み取りをわずかに遅くする方が良いです)。また、ユーザーがramdiskに何を含めるべきかを手動で決定する必要がないことも役立ちます。最も頻繁に使用するものはすべて自動的にメインメモリに保持されます。
メモリがたくさんあるが、アプリケーションが期待したほど速く実行されていない場合、それらは安全に実行されているため遅くなる可能性があります。たとえば、書き込みが完了するのを待たないように指示すると、SQLiteは桁違いに高速になりますが、正常にシャットダウンしないとデータベースが完全に破損します。
また、/tmp
通常、LinuxディストリビューションのRAMディスクは、データが失われても問題ないためです。ただし、書き込みが多すぎる/tmp
とメモリ不足になる可能性があるため、それが良いアイデアであるかどうかについてはまだ議論があります。
Alan Shutkoが質問に対する彼のコメントで指摘しているように、RAMは実際には安くはありません。
以下にいくつかのデータポイントを示します。Googleで4 GB RAM、64 GB SSD、1 TB HDD(機械式ハードドライブ)を検索した場合、表示されるコストは次のとおりです(これは2013年8月25日のものです)。
4 GB RAM = 32ドル-36ドル => RAM = 1 GBあたり約8ドル
64 GB SSD = 69ドル-76ドル => SSD = 1 GBあたり約1ドル
1 TB HDD = 80ドル => HDD = GBあたり0.08ドル
おっ!HDDはRAMの100倍安価です!また、SSDはRAMの8倍安価です。
(さらに、他の回答で指摘されているように、RAMは本質的に揮発性であるため、他の形式の永続ストレージが必要です。)
ローカルマシンのRAMディスクでコンテンツを生成するために、すべての即時読み取り/書き込み操作を行います。また、MongoDBジャーナリングフォルダー、コンパイラー、Pythonインタープリター、および標準ライブラリもそこに保存します。このディスクはシャットダウン時に保存され、起動時に復元されます。私が使用する2番目のRAMディスクは64メガバイトで、インターネットブラウザーのすべてのキャッシュフォルダーがそこを指します。その1つはシャットダウン時に失われ、いっぱいになるとフラッシュします。
私が思う仕事に適切なツールを使用して、私があなたに与える答えになるでしょう。RAMディスクを使用すると、7200rpm Western Digitalよりも30〜1000倍高速にデータを生成しています。
これは私が使用しているプログラムです:http : //www.romexsoftware.com/en-us/primo-ramdisk/
... 32ギガバイトのRamが200ドル未満の場合、なぜこれが一般的にならないのかわかりません。
簡単な説明:
アプリケーションが初めて実行されると、ハードディスクまたはネットワークからRAMに転送されます。だから、心配しないでください、あなたはすでにそれをしています。
ただし、通常、アプリケーション/プロセスファイルは1つだけではなく、ハードディスクまたはネットワークを対象とするI / O操作(アプリケーションの他のファイルまたはシステムとのその他のI / O操作など)があるため、速度が低下する可能性があります応用。これらはRAMディスクに転送できますが、電源オフ時にRAMディスクが削除され、起動時に再び書き込まれることを考慮する必要があります。
また、RAMは質問で示したほど安くはありません。RAMのコストだけでなく、マザーボードのソケットを含む作業用RAMのコスト(これらは限られた/まれであるため価値が高い)と、電力が低下した場合のデータ損失のコストをカウントする必要があります。
たとえば、1TBのHDDを搭載したコンピューターは安価で購入でき、それはホームコンピューティングに関するものであり、1TBのRAMを搭載したコンピューターはスーパーコンピューターの範囲にあります。(ただし、Intelは中規模のものに取り組んでいます:http : //vr-zone.com/articles/more-on-xeon-e5-terabyte-of-ram-even-at-midrange-/14366.html)
これはすばらしい質問であり、私はその回答が魅力的だと感じています。これをOracle DBAとしてコメントしますが、私の回答はOracleデータベースに特有のものです。これは、Oracleを使用するときに多くの人が犯す大きな間違いです。これが他のアプリケーションにも当てはまるかどうかはわかりません。これはトピックから外れることを意味するのではなく、専門的な回答として意図されています。
Oracleでパフォーマンスを調整する場合、ボトルネックを解消することを本当に求めています。私たちのほとんどはそれを言っていませんが、それは制約の理論に基づいています:https://en.wikipedia.org/wiki/Theory_of_constraints
メモリがボトルネックにならない場合があります。Oracleにはメモリを管理するための複雑なメカニズムがあり、他の領域にボトルネックがある場合、メモリを増やすだけで実際に速度が低下する可能性があります。非常に一般的な例を挙げましょう。
クエリが遅いようです。コンセンサスは、RAMを増やす場合、メモリはディスクより速いため、クエリの応答時間を増やす必要があります。まあ...これは、Oracleがデータのメモリ管理を処理する方法です。Oracleには、特定の職務に割り当てられるさまざまなメモリロケーションがあります。したがって、これらの思い出を増やすことができます。データに使用される領域は「バッファキャッシュ」と呼ばれます。これは一連のリンクリストです(リストの数はバージョンごとに増加する傾向があります)。クエリ中にディスク上でブロックが検出されるたびに、ハッシュアルゴリズムが実行され、どのリストを挿入するかが決定されます。リスト内のどこに配置するかは、タッチカウントアルゴリズムに基づいています(Oracleサポートサイトで説明されていますが、そのため、あなたはそれを得るためにお金を払わなければなりません...それは本当に重要ではありません)。
ただし、クエリを実行すると、Oracleはその時点で検索するバッファチェーンのラッチを解除します。このLATCH(注:これはロックではありません。違いがわからない場合、Googleの「ラッチ」は、読み取り中はそのチェーン上の他のすべての操作をブロックします。したがって、読み取りと書き込みをブロックします(これは、ロックが読み取りをブロックしないと主張するOracleとはまったく異なります)。
これが必要なのは、チェーン内のブロックを読み取ると、Oracleが「要求」される頻度に基づいてブロックを移動するためです。要求頻度の高いブロックは最上部に移動され、要求頻度の低いブロックは下部に残されて期限切れになります。2つのセッションでリンクリストを読み取り、ブロックを移動することはできません。そうしないと、存在しない場所を指すポインターがヒットします。
メモリのサイズを大きくすると、各リンクリストのサイズが大きくなります。これにより、リストの読み取りにかかる時間が長くなります。単一の貧弱なクエリまたは複雑なクエリは、リンクされたリストを数万または数百万回も読み取ることができます。各読み取りは高速ですが、それらの数はラッチの取得につながり、これらは他のセッションをブロックします。Oracleはこれを「論理IO」(またはバッファ取得またはその他のこと。この専門用語はOracleに固有であり、ITの他の部分の何かを意味する場合があります)と呼びます。
そのため、リストが長く、SQLの品質が非常に悪い場合は、SQLステートメントのラッチが長く保持されます。メモリを増やすと、パフォーマンスが低下する場合があります。ほとんどの場合、これは起こりません。人々は多額のお金を費やし、利益を享受しません。そうは言っても、バッファキャッシュにより多くのメモリが必要な場合もありますが、これが適切かどうかを知るためにボトルネックを適切に識別する必要があります。この投稿では、これを分析する方法については説明できません。DBAフォーラムを参照してください。そこで議論する人もいます。かなり複雑です。
これが発生する可能性のあるソフトウェアの他の部分の特定の例はありますか?工場の制約を緩和することを論じる「目標」と呼ばれる素晴らしいビジネス本があります。このプロセスは、パフォーマンスの問題を評価する際にOracle DBAが行うことと非常に似ています。多くの場合、MBAプログラムの標準的な読書です。IT専門家のために読むことは非常に貴重です。
RAMは安価かもしれませんが、従来のストレージほど安くはありません。
私は3TBのハードドライブを持っています(99ドル):HDD見積もり
また、3TBごとに48個が必要になります(各$ 719):RAM Quote
それは合計$ 34,512対$ 99です。3TBのRAMを実行するのに必要なハードウェアの価格は言うまでもありません。
実際にはいくつかのシナリオで行われます。オペレーティングシステム/アプリスタックが十分に小さい場合は、完全にRAMで実行できます。もちろん、受け入れられた答えが持っているすべての欠点があります。しかし、それは可能であり、実際に起こります。
人気のあるLinuxディストリビューションであるPuppy Linuxをご覧ください。その仕組みのページでは、RAMからの実行について説明しています:http : //puppylinux.org/wikka/howPuppyWorks
答えは部分的に次のように答えられると思います。
前提:
メモリスロットの数が限られていることを考えると、重要な解決策は、内部寸法が小さく、メモリスタックが大きい、および/または3Dスタッキングという形で提供されます。両方のプロセスは、過去36か月以上にわたって予想どおりに進行しました。
質問は次のとおりです。「DDR3最大メモリサイズ」またはセマンティック:「DDR3なぜ16GBを超えるメモリモジュールがないのですか」
そして答えは:
DDR3規格は、512メガビットから8ギガビットのチップ容量を可能にし、効果的に16ギガバイト (src)の最大メモリモジュールサイズを有効にします。
このテクノロジーマップで概説されているように、DDR4はこれを変更します。
結果:
ヘネスの徹底した投稿に対するいくつかの警告:
pkr298
OSとプログラム全体がRAMに読み込まれることを前提としています。ハードドライブ/ SSDを廃止すべきではありません。あなたは実際に正しいです近い将来、すべてのストレージとメモリはnano ramの形式になります。NRAMは基本的に数原子幅の「機械的」スイッチです。状態を維持するために電流を必要としないため、エネルギー効率が良く、冷却する必要がありません。これには2つの理由があります。1つは、メモリへのアクセスが非常に高速で、携帯電話などの小さなデバイスでテラバイトのデータを保持できることです。詳細については、http://www.nantero.com/mission.htmlおよびhttp://en.wikipedia.org/wiki/Nano-RAMをご覧ください。
他の人が言っているように、RAMは揮発性で、SSDの10倍のコストのようなものです。
しかし、そこISあなたが記述しているものにかなり近づくそこの製品は-残念ながら、私は名前を思い出すことができません。
それは、CFカードとバッテリーを組み合わせたRAMベースのドライブ(IIRC max 64gb)です。システムの電源を入れると、CFカードの内容がRAMにコピーされます(まだロードされていない場合、CFカードからの要求に対応すると考えられます)。シャットダウン時に、RAMの内容がCFカードにコピーされます。 -バッテリーが十分に大きいため、消耗する前にこれを終了できます。
安くはありません。