初めて実行したりfind
、ls
ディレクトリで実行すると動作するのに時間がかかるようです。ただし、それ以降は常にディレクトリの内容のリストがどこかにキャッシュまたはインデックス付けされているかのように高速です。
コンピュータを再起動してもこのキャッシュを保存する方法はありますか?
答え1
答え2
「再起動後も維持」が疑わしい。ただし、起動時にキャッシュを簡単に再構築できます。この方法は、わずかな遅延だけでほぼ同じことを行います。
ファイルを作成し、/etc/cron.d/rebuild-fs-cache
次の内容を入れてください。
@reboot root /usr/bin/nice -n 19 /usr/bin/ionice -c 3 -t /usr/bin/find / >/dev/null 2>&1
これは、プロセスの優先順位をできるだけ高いレベルに下げるためにnice
(ionice
デフォルトでインストールする必要があり、パッケージマネージャを介して確実に使用できます。Debianはそれをcoreutils
別々に入れます)。つまり、Itの他の項目を妨げてはいけません。システムで実行されますが、完了するまでに少し時間がかかります。カーネルがファイルシステムデータをディスクからメモリにロードするように強制するすべてのプロセスを独自に実行します。util-linux
find
find
stat()
キャッシュが構築されると、オペレーティングシステムは別の目的でメモリを必要とするため、キャッシュが消去されない限り維持する必要があります。私はしばらく使ってきましたが、ディレクトリリストは大きなディレクトリでもうまくいきます。かなり正確な数字を引用することはできませんが、上記のクローン操作を使用しないよりも高速です。