Apache: Высокая нагрузка на чтение с диска, нет запросов

На виртуальной машине Ubuntu iotop показывает мне, что некоторые процессы «apache2 -k start» производят общую чтение нагрузки на диск, постоянно составляющую от 4 до 7 M / с. даже если запросы не регистрируются.

lsof показывает мне около 5000 обычных файлов, используемых www-data. Как я могу определить, что является причиной такого большого количества операций ввода-вывода на диске, когда его не должно быть вообще?

0
25.07.2017, 23:01
1 ответ

Признаки большого количества операций ввода-вывода, скорее всего, потребуют использования инструмента отслеживания для более подробного изучения того, что представляет собой этот ввод-вывод; straceэто распространенный способ сделать это:

strace -e trace=file -ff -o output -y -p $some_httpd_pid_here
  • -e trace=fileотслеживает операции, связанные с файлами (есть и другие удобные спецификаторы, см. прекрасное руководство ), но не показывает readвызовы, которые могут быть необходимы для определения того, из каких файловых дескрипторов считываются; для этого -e trace=open,readили вместо этого просто проследите все, а затем выполните поиск вывода...
  • -ffследует за ответвлениями, хорошо, если порождается CGI или что-то подобное, или если вместо этого вы отслеживаете главный процесс httpdв момент его запуска.
  • -o outputвзаимодействует с -ffи создает файлы outputили output.*, которые можно использовать позже.
  • -yне переносим на более старые версии strace, но избавляет от необходимости выяснять, на какой файловый дескриптор номер 42 или на что ссылается.

(straceтакже может быть ужасно медленным; см. также Linux sysdigили SystemTapдля альтернативных подходов к отслеживанию вещей или иной отладке того, что делает ядро...)

1
28.01.2020, 02:45

Теги

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