削除されたファイルを終了してメモリキャッシュをクリーンアップします。

削除されたファイルを終了してメモリキャッシュをクリーンアップします。

削除プロセスを終了すると、メモリキャッシュをクリーンアップするのに役立つ可能性があるかどうかを知りたいです。時にはlsofから削除されたファイルがたくさんあるので、そのプロセスを終了するとより多くの空きメモリを提供できますか?

例:

lsof | grep delete
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/42/gvfs
      Output information may be incomplete.


cupsd      1619                  root   10r      REG              253,0      2979   38250477 /etc/passwd+ (deleted)
gnome-set  5731                   gdm   14r      REG              253,0     65536   51102558 /etc/pki/nssdb/cert8.db;5c644c01 (deleted)
gnome-set  5731                   gdm   16r      REG              253,0     16384   51197440 /etc/pki/nssdb/key3.db;5c644c01 (deleted)
pool       5731  5795             gdm   14r      REG              253,0     65536   51102558 /etc/pki/nssdb/cert8.db;5c644c01 (deleted)

kill 1619

削除されたプロセスがメモリを消費するかどうか心配されます。

私達はまた次を見ることができます:

lsof | grep deleted | wc -l 
3421

答え1

多くの場合、プロセスは明示的にファイルを作成し、開いて直接削除してファイル操作をより安全にし、プロセスの終わりにファイルを削除します。

簡単に言えば、これは特にあなたの質問に表示されるファイルの機能です。これらのプロセスを終了すると、システムの動作が中断されます。

場合によっては、削除されたファイルがまだ開いているのがバグである可能性があります。たとえば、プロセスはログファイルに書き込んでいますが、ログファイルを再度開くというシグナルをプロセスに送信せず、ログファイルは圧縮され削除されます。ファイルシステムを介してこれらのファイルを切り取ることができます/proc/。上記のようにファイル記述子番号を見つけて、ファイルを切り捨てますlsof> /proc/12345/fd/12312345はプロセスID、123はファイル記述子番号ですが、これはほとんど必要ありません)。

プロセスは削除されず、そのファイルを参照するディレクトリエントリのみが削除されました。

答え2

使用するソフトウェア/ソリューションに応じて、既知または許可されているベースラインを定義する必要があります。

時間が経つにつれてかなりの速度で増加しない場合、削除されたファイルはシステムにまだ開いているか存在するものに固執しません。これで、システム/VMの正常な基準から大きな偏差がある場合は、心配する必要があるかもしれません。

私たちは最近、いくつかのソフトウェアベンダーに共通して適用されるシステムで、約20〜50,000個の削除されたファイルが基準から外れていることを発見しました。 lsofを完了するのに約5分かかり、ディスク容量が不足していました。

結局、私たちはベンダーが一時ファイルを開いて削除するいくつかのJavaルーチンを開発したことに違いありません。いいえ閉じてください。私たちはベンダーにバグを提出し、疑わしいファイルを識別し、ベンダーはコードを修正しました。また、このソリューションは、大量のデータパーティションを持つLinuxで開かれたファイル制限に達する可能性があることを顧客とベンダーに指摘しています。

関連情報