web-dev-qa-db-ja.com

Linuxは単一のコマンドでディスクキャッシュを無効にします

サーバーは適切に動作していますが、バックアップやその他のスキャンプロセスを実行すると、サーバー全体がタンクに入れられます。 clamdのようなものが実行され、多くのファイルがスキャンされます。パフォーマンスが低下すると予想されますが、キャッシュが停止し、最終的には何もできないシステムが得られなくなります。

1つのコマンドでディスク/ディスクキャッシュを無効にする方法はありますか?アイデアは次のように実行することです:

# ./nocache clamd

次に、clamdの実行中に、システム上のすべてのファイルを読み取るときに、プライミングされたキャッシュを破棄しませんでした。

7
Kristopher Ives

プログラム自体に実装する必要があります。 clamdがまだ実行していない場合は、posix_fadvise(... POSIX_FADV_NOREUSE)madvise(... MADV_DONTNEED)(メモリがファイルをマップする場合)などの関数への呼び出しを追加することで、clamdを変更して、不必要に大きなキャッシュフットプリントを回避できます。ただし、ファイルシステムのメタデータはキャッシュからプッシュされます。それについてできることはあまりありません。

2
David Schwartz

それは本当にあなたが探している答えではありませんが、私たちはバックアップとスキャンにioniceを使用しているので、サーバー上の他のプログラムに影響を与えません。

ionice -c3 clamd
4
Jure1873