Как отслеживать / контролировать ввод / вывод команды Linux

Я запустил find / -name abc.html и вскоре после того, как снова выполнил эту команду. На этот раз это было очень быстро, поэтому я знаю, что find должно где-то кэшировать результат.

Как я могу узнать, где хранится кеш?

6
задан 12 April 2015 в 02:39

2 ответа

Действительно, как @zongfu указанный, find не кэширует его результаты в файле, а скорее ядро кэшируется, каталоги find читает, таким образом, они могут быть считаны снова, не касаясь диска, который является, почему это быстрее. Если Вы все еще хотите видеть, какой IO программа делает, хотя, можно использовать strace. Это прогоны программы другая программа Вы определяете, и регистрирует системные вызовы, которые делает программа. Без любых аргументов это распечатает их всех, которые могут быть большой информацией, таким образом, Вы укомплектовываете, хотят ограничить его только определенными вызовами, такой как open(), таким образом, Вы видите, какие файлы программа собирается открыть. Это было бы похоже:

strace -eopen someprogram
8
ответ дан 12 April 2015 в 02:39

find ничего не кэширует, особенно на диск. Причина, почему второе выполнение намного быстрее, состоит в том, потому что Linux кэширует данные, к которым получают доступ (в этом каталоге случая списки) в памяти (см. free).

5
ответ дан 12 April 2015 в 02:39

Другие вопросы по тегам:

Похожие вопросы: