現在のメモリ内容を交換不可として表示できますか?

現在のメモリ内容を交換不可として表示できますか?

背景:私のLinux(ubuntu)ワークステーションで物理RAMよりも多くのメモリを割り当てて、いくつかの実験を実行したいと思います。しかし、私はGUIで別の「一般的な」作業を行いました。

質問:スワップスペースが十分です。実験交換が始まると、GUIは非常に遅くなります。私は「通常の」ものがスワップ空間の内外に絶えず移動していることが問題だと思います。私はOSが「通常の」メモリではなく実験的なメモリだけを交換したいと思います。

質問:特定の時点(実験の前など)に割り当てられているすべてのメモリを「スワップ不可能」とマークできますか?これはページレベルで行われるのか、それともプロセスレベルで行われるのかは重要ではありません。

ご協力ありがとうございます!

ベストアンサー1

スワップ不可能メモリは「固定」メモリと呼ばれ、これは直接メモリアクセス(DMA)に一般的に使用されるメモリタイプです。以下を使用して、仮想アドレスの特定の部分を表示できます。mlock(2)またはmlockall(2)機能。

たとえば、特定のアプリケーションメモリを固定としてマークすることができます。GDBの使用スクリプトmlock.gdb:

call mlockall(3)
detach

次のコマンドを使用してアプリケーションメモリをロックします。

gdb --pid ${PID} --batch -x mlock.gdb

おすすめ記事