私は Linux の "swappiness" tuneable について読んでいます。これは、アプリケーションが使用されていないときに、カーネルがアプリケーションのメモリをディスクにスワップする方法を制御します。この用語を Google で検索すると、このような長所と短所について議論しているページがたくさん表示されます。論点を簡単に言うと、次のようになります。
swappiness が低すぎると、非アクティブなアプリケーションが、他のプログラムが使用する可能性のあるすべてのシステム メモリを占有します。
swappiness が高すぎると、非アクティブなアプリケーションを起動するときに、その状態がディスクから読み取られるため、大きな遅延が発生します。
この議論は私には意味がありません。大量のメモリを使用している非アクティブなアプリケーションがある場合、カーネルがそのメモリをディスクにページングし、そのデータの別のコピーをメモリ内に残さないのはなぜですか? これは両方の長所を生むようです: 別のアプリケーションがそのメモリを必要とする場合、その別のコピーがディスク上にあり、非アクティブなアプリケーションが起動されたときにスワップインできるため、すぐに物理 RAM を要求して書き込みを開始できます。上。また、元のアプリが起動すると、まだ RAM にあるページをディスクから取り出すことなく、そのまま使用できます。
または、何か不足していますか?