Linuxにスワップ領域で何をすべきか教えてください。

Linuxにスワップ領域で何をすべきか教えてください。

Ubuntu 20.04 Server Editionを使用しています。

私は512GBのRAMを持っています。また、2つのRAMディスク(tmpfs)があり、どちらも500 GBで構成されています。

tmpfs ディスクは使用する RAM の量を拡張および縮小するため、(完全な程度に応じて) 通常、RAM ディスクは非常に少量の RAM (合計 200 GB 程度) を使用します。

約1000GB程度の高速NVMeドライブに交換しました。時々、RAMの使用量が短い期間(わずか数秒)で急増することがあります。

この時点で、Linuxは常にプロセスにメモリを提供し、ドライブのスワップスペースを使用する必要があることをどのように指示しますか?

答え1

私が知っている限り(そしてFelixJNのリンクも同意するようです)、RAMのすべては同じように交換可能であり、コンテンツ交換の決定はデータ型ではなく最新性に依存します。私の考えでは、これはあなたのユースケースにも良い経験的な方法だと思います!

しかし、少なくとも少し欺くことができます。

512 GB RAMシステムがNUMAシステムであると仮定すると、特定のノードのメモリにtmpfsを割り当てて(man tmpfs:を参照)、すべてのメモリを少なくとも1つのノードに集中させることができます。mpol

しかし、正直なところ、200GB(!)のデータをSSDに直接保存するのではなく、非常に大きなファイルシステムバッファと非常に低い圧力を使用してそのデータをストレージにフラッシュするのが効果的ですか?プロセスにメモリが不足すると、カーネルはバッファを SSD にフラッシュし始め、以前に tmpfs に置いたファイルへのアクセスを制限し、所望の結果を得る。メモリ圧力が高い場合、一時ファイルはSSDに保存され処理されます。十分なメモリが利用可能な場合はRAMにあります。

関連情報