ページキャッシュが削除された場合、誰が解放されますか?

ページキャッシュが削除された場合、誰が解放されますか?

私が走るとき

echo 1 > /proc/sys/vm/drop_caches

さらに、キャッシュされたメモリブロックが消去されました。誰がそのメモリを公開したのか、どうすればわかりますか?それとも、実行されなくなったプロセスからメモリを解放しますか?

ベストアンサー1

echo 1 > /proc/sys/vm/drop_cachesページキャッシュを解放します。これはディスクブロックの内容を含むカーネルメモリです。このメモリはカーネルに属します。

これをメモリを「解放」することで説明するのは少し誤解を招く可能性があります。メモリは最初に保存されず、キャッシュです。より重要な目的のためにメモリが必要な場合、キャッシュページはメモリから削除されます。これは保持されないので可能です。誰も必要ありません。

これコンテンツキャッシュエントリは複数のプロセスに属することができます。メモリページは通常、単一のプロセスに属しません。たとえば、ページにファイルのキャッシュされたページが含まれている場合、そのページはファイルを開いたすべてのプロセスに属していると言うことができます。ただし、キャッシュエントリは、現在ファイルが開いているプロセスがなくても便利なため、システム全体に属すると主張することもできます。

キャッシュを削除することは、I/O ベンチマークに元のキャッシュを使用する場合にのみ便利です。ディスクキャッシュはパフォーマンスにとって非常に重要であり、これを排除するとパフォーマンスに重大な影響を与える可能性があります。しかし、RAMにキャッシュに十分なスペースがありません。

おすすめ記事