私の質問に対する John Nilsson の回答は、キャッシュをパージして問題に関連しているかどうかをテストするのに役立つかもしれません:
<ブロック引用>
sync && echo 1 > /proc/sys/vm/drop_caches
本当の違いは 1 対 3 だけだと思いますが
/proc/meminfo の内容 カーネルが RAM を使用する目的を教えてください。
/proc/sys/vm/vfs_cache_pressure を使用できます ファイルシステム関連のキャッシュに使用されるメモリをカーネルに強制的に回収させます。
アプリケーションがディスク I/O をほとんどまたはまったく行わない場合にのみ、このパラメーターを調整することでメリットが得られることに注意してください。
vfs_cache_pressure
を増やすこともできます swappiness
を設定するだけでなく、 0
まで .
そうすることで、カーネルがキャッシュをより速く再利用できるようになると同時に、何をページアウトするかを決定する際に、プロセスが同等またはそれ以上の優先度を与えられます。
のみ 関心のあるプロセスがディスク I/O をほとんど行わない場合は、これを行います。
ネットワーク I/O バウンド プロセスがリクエストを処理するためにスワップインする必要がある場合、それは問題であり、実際の解決策はそれを競争力の低いサーバーに配置することです。
デフォルトの swappiness
で 設定すると、カーネルはほとんどの場合、FS 関連のキャッシュを実メモリに保持することを優先します。
そのため、キャッシュ プレッシャを増やす場合は、swappiness
を均等に調整してください。 .