2

У меня есть виртуальная машина с приложением на основе php (в apache), когда я смотрю на активность диска, при работе apache происходит постоянная запись 170 Кбит / с.

Когда мы применяем нагрузку, производительность сервера зависит от процессора, но это напрямую связано с скачками ввода-вывода на диск в 20-30 раз. График использования процессора отражает график доступа к диску записи.

Есть идеи?

2 ответа2

2

Две рекомендации:

iotop - удобная программа, которая показывает вам использование ввода / вывода в реальном времени в формате, подобном top команде. Это должно помочь вам определить скрипт / двоичный файл, который выполняет все операции ввода-вывода. Я думаю, что это может быть уже установлено на более новых ядрах, но yum может предоставить его на RHEL, если вы его не видите.

lsof также полезен при устранении неполадок ввода / вывода; в нем перечислены все открытые файлы.

ОБНОВИТЬ

Если есть "постоянная" активность диска, то iotop должен сказать вам, какие процессы являются виновниками. Что касается истории транзакций ввода / вывода: я не верю, что история ввода / вывода регистрируется в большинстве дистрибутивов Linux, но вы можете добавить задание cron.

В качестве пользователя root откройте crontab с помощью crontab -e и добавьте следующие две строки:

* * * * * /bin/date >> /var/log/iotop; /usr/local/bin/iotop -bot --iter=3 -q >> /var/log/iotop
* * * * * /bin/date >> /var/log/lsof; /usr/bin/lsof -b -w >> /var/log/lsof

Это сбрасывает iotop и lsof в журнал каждую минуту. Добавьте скрипт logrotate для каждого из них, чтобы файлы не занимали все ваше пространство, например:

someuser@myhost:~> cat /etc/logrotate.d/lsof
/var/log/lsof {
  rotate 3
  weekly
  compress
  missingok
  notifempty
}
0

Похоже, что несвязанная фоновая задача удаляла содержимое каталога /tmp, в который прекомпилировался php. В результате процесс прекомпиляции php снова запустился, что привело к постоянной активности диска.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .