私はデータベーステーブルの一部を保存するためにRAMを使用しており、その他はハードディスクに保存されています。
今日、自分のプロセスがスワップメモリを使用していることを知りました。スワップメモリとは何ですか?どのプロセスがスワップメモリを使用していることをどのように検出できますか?
物理メモリが不足すると、仮想メモリが使用され、ディスク上のメモリにデータが保存されます。ディスクからの読み取りは、メモリからの読み取りよりも数桁遅いため、すべての速度が低下します。 (実メモリーと仮想メモリーの間のデータ交換は「スワッピング」です。ディスク上のスペースは「スワップスペース」です。)
アプリが「スワップを使用」している場合は、使用するメモリを減らすか、RAMを増やす必要があります。
(スワップは、使用されていないアプリケーションを使用するまでディスクに保存できるので便利です。その後、「ページイン」して通常どおりに実行できます。ただし、メモリにない場合でも、OSはそのメモリを使用できます。ディスクキャッシュのような他の何かのため。それは非常に便利な機能ですが、プログラムを実行するのに十分な物理メモリがない場合は、間違いなくより多くのメモリが必要になります。幸い、最近のメモリは本当に本当に安いです。)
コンピュータには、一定量の物理メモリがあります。しかし、ほとんどの場合、私たちはもっと欲しいです。したがって、ディスク上のメモリをスワップします。
そのメモリが必要になるたびに、メモリにスワップバックする必要があります(他のピースをスワップアウトする)。遅延を最小限に抑えるための非常にインテリジェントなアルゴリズムがありますが、それでも時には待機する必要があります。
Windowsでは、タスクマネージャを見ると、列ページフォールトを表示できます。これは、アプリケーションがディスク上にあり、交換が必要なメモリを要求する回数を示します。多くのページフォールト=遅いアプリケーション。
このプロセスはいくつかのレベルで使用されます。速いものから遅いものへの要約:
cat /proc/pid/smaps
スワップを使用したくない場合は、スワップパーティションを使用しないでください(/etc/fstab
の行をコメント化してください)。ただし、新しいプロセスを開始できず、物理メモリが不足するとmallocが失敗します。メモリ。 OSはホットページをメモリに保持し、最近使用されていないページをディスクにスワップするため、これは一般に良い考えではありません...あまり安全ではなく、あまり役に立ちません。
別の解決策は、ページをメモリにロックするようにデータベースをハッキングすることです(できることはわかっていますが、正確な方法を説明することはできません)とにかく、データベースが独自のスワッピングを使用しているようですキャッシングメカニズム。
スワップとは何か、仮想メモリがどのように機能するかを知るために、オペレーティングシステムの講義をご覧になることをお勧めします。MIT Open Coursewareが役立つかもしれません。
一部回答を見つけました。スワップメモリは、オペレーティングシステムが実際にRAMにある情報を他のアプリケーションのために解放するために使用するために使用する、コンピュータのハードディスク内の領域です。これは、システムには新しいプロセス用のメモリが必要であり、それがないため、システムに十分なRAMがある場合、SWAPメモリは必要ない可能性があります。
[〜#〜]更新[〜#〜]
スワップスペース(または仮想メモリ)の場所を見つけるには、タスクマネージャー(CTRL + ALT + DEL)に移動し、[表示]-> [列]-> [仮想メモリ]からオンにします。次に、メモリ使用量と仮想メモリの差を計算します。また、Vistaを実行している場合の表示方法についても説明します。 http://www.ehow.com/how_5067693_increase-swap-space.html