web-dev-qa-db-ja.com

スワップメモリ​​とは何ですか?

私はデータベーステーブルの一部を保存するためにRAMを使用しており、その他はハードディスクに保存されています。

今日、自分のプロセスがスワップメモリ​​を使用していることを知りました。スワップメモリ​​とは何ですか?どのプロセスがスワップメモリ​​を使用していることをどのように検出できますか?

30
developer

物理メモリが不足すると、仮想メモリが使用され、ディスク上のメモリにデータが保存されます。ディスクからの読み取りは、メモリからの読み取りよりも数桁遅いため、すべての速度が低下します。 (実メモリーと仮想メモリーの間のデータ交換は「スワッピング」です。ディスク上のスペースは「スワップスペース」です。)

アプリが「スワップを使用」している場合は、使用するメモリを減らすか、RAMを増やす必要があります。

(スワップは、使用されていないアプリケーションを使用するまでディスクに保存できるので便利です。その後、「ページイン」して通常どおりに実行できます。ただし、メモリにない場合でも、OSはそのメモリを使用できます。ディスクキャッシュのような他の何かのため。それは非常に便利な機能ですが、プログラムを実行するのに十分な物理メモリがない場合は、間違いなくより多くのメモリが必要になります。幸い、最近のメモリは本当に本当に安いです。)

45
jrockway

コンピュータには、一定量の物理メモリがあります。しかし、ほとんどの場合、私たちはもっと欲しいです。したがって、ディスク上のメモリをスワップします。

そのメモリが必要になるたびに、メモリにスワップバックする必要があります(他のピースをスワップアウトする)。遅延を最小限に抑えるための非常にインテリジェントなアルゴリズムがありますが、それでも時には待機する必要があります。

Windowsでは、タスクマネージャを見ると、列ページフォールトを表示できます。これは、アプリケーションがディスク上にあり、交換が必要なメモリを要求する回数を示します。多くのページフォールト=遅いアプリケーション。

このプロセスはいくつかのレベルで使用されます。速いものから遅いものへの要約:

  • CPUレベルでは、レジスタがあります。これらは最速のメモリですが、容量は限られています。
  • また、CPUには小さなメモリキャッシュがあります。ここには、実行中のプログラムの小さな断片が格納され、高速アクセスが可能です。詳細については、分岐予測アルゴリズムを検索してください。
  • CPUとメインメモリの間にレベル2キャッシュがある場合があります。
  • 次のレベルはメインメモリ(RAM)です。
  • 最後のレベルで最も遅いのはディスクです。追加のメモリとしてUSBスティックを使用できる場合もあります。
7
Toon Krijthe
cat /proc/pid/smaps

スワップを使用したくない場合は、スワップパーティションを使用しないでください(/etc/fstabの行をコメント化してください)。ただし、新しいプロセスを開始できず、物理メモリが不足するとmallocが失敗します。メモリ。 OSはホットページをメモリに保持し、最近使用されていないページをディスクにスワップするため、これは一般に良い考えではありません...あまり安全ではなく、あまり役に立ちません。

別の解決策は、ページをメモリにロックするようにデータベースをハッキングすることです(できることはわかっていますが、正確な方法を説明することはできません)とにかく、データベースが独自のスワッピングを使用しているようですキャッシングメカニズム。

スワップとは何か、仮想メモリがどのように機能するかを知るために、オペレーティングシステムの講義をご覧になることをお勧めします。MIT Open Coursewareが役立つかもしれません。

3
fortran

一部回答を見つけました。スワップメモリ​​は、オペレーティングシステムが実際にRAMにある情報を他のアプリケーションのために解放するために使用するために使用する、コンピュータのハードディスク内の領域です。これは、システムには新しいプロセス用のメモリが必要であり、それがないため、システムに十分なRAMがある場合、SWAPメモリは必要ない可能性があります。

[〜#〜]更新[〜#〜]

スワップスペース(または仮想メモリ)の場所を見つけるには、タスクマネージャー(CTRL + ALT + DEL)に移動し、[表示]-> [列]-> [仮想メモリ]からオンにします。次に、メモリ使用量と仮想メモリの差を計算します。また、Vistaを実行している場合の表示方法についても説明します。 http://www.ehow.com/how_5067693_increase-swap-space.html

1
faya