• 締切済み

find -type f でio待ちが発生するのはなぜ?

find /usr -type f を実行したときのio待ちについて質問です。 vmstat でチェックしながら、 find /usr -type f を実行すると、 bi(blocks in ? )が大量に発生します。 当然?ですが、waの数値も増えます。 単に、find /usr だけだと、biもwaも変化無しです。 -type fオプションをつけると、 どのようなことが発生するのでしょうか? 単に、find /usr だけだとディレクトリエントリをみるだけで、 -type fオプションをつけると、i-nodeデータもチェックする、ということだと思うのですが、 biが発生するとは思えないのですが。

みんなの回答

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

vmstat でチェックしながら find /usr -type f find /usr という順番で実行したんじゃないですか。 最初の find でディスクデータがメモリにキャッシュされ、 2番目の find ではキャッシュデータが使われたため ディスクアクセスが発生しなかったのだと思います。 find /usr -type f を複数回つづけておこなうと vmstat の結果はどうなりますか。 また、 sync;sync; echo 3 > /proc/sys/vm/drop_caches して、キャッシュデータを無効にして find /usr を実行すると、vmstat の結果はどうなりますか。 drop_caches については参考URLのコラムを見てください。 drop_caches は、Linux カーネルに依存するので使われている バージョンによっては使えないかもしれません。

参考URL:
http://www.atmarkit.co.jp/flinux/rensai/tantei01/bangai01c.html
すると、全ての回答が全文表示されます。

関連するQ&A