сбои страниц в perf
инструменте из linux tools ( perf_events
) относятся как к незначительным, так и к основным ошибкам страницы. И незначительные ошибки страницы не для доступа к диску. И не каждая главная ошибка страницы связана с доступом к диску (редактируется только файл диска mmap
). И доступ к диску из чтения / записи не вызовет ошибок страницы.
Некоторые общие решения для подсчета ошибок на странице находятся по адресу https://stackoverflow.com/questions/23302763 .
Для подсчета обращений к диску в глобальном масштабе используйте iostat
инструмент http://man7.org/linux/man-pages/man1/iostat.1.html (tps, r / s, w / s) или vmstat
инструмент http://man7.org/linux /man-pages/man8/vmstat.8.html (bo, bi, -d
). Оба используются с периодом в секундах, как iostat 1
или, vmstat 1
чтобы печатать один набор действий каждые секунды, пока не будет убит ctrl-c; или, как iostat 1 60
или vmstat 1 60
печатать каждую секунду в течение 1 минуты и выйти.
Другое решение состоит в том, чтобы использовать комбинацию perf
инструмента и некоторых конкретных событий из подсистем ввода-вывода или диска. У Грегга есть несколько примеров продвинутого использования perf на http://www.brendangregg.com/perf.html и https://github.com/brendangregg/perf-tools .
Его инструмент iosnoop http://www.brendangregg.com/blog/2014-07-16/iosnoop-for-linux.html и http://www.brendangregg.com/blog/2014-07-23/linux-iosnoop -latency-heat-maps.html (на основе perf) может отслеживать дисковый ввод-вывод по pid процесса, идентификатору диска, смещению и размеру io, а также измерять задержку доступа к диску.
Проверьте также «7.2. Карты тепла» на http://www.brendangregg.com/perf.html
Я использовал perf_events для записи вопроса о блокировке (дисковый ввод / вывод) и статических точек трассировки завершения:
# perf record -e block:block_rq_issue -e block:block_rq_complete -a sleep 120