Загрузка ЦП EC2 достигает 100% каждый раз на машине, на которой установлен сайт drupal

Мой рабочий сайт на Drupal работает на EC2. Недавно мы заметили, что загрузка нашего процессора EC2 достигает 100%. Я проверил посещаемость своего сайта, там мало пользователей. Я проверил процесс, запущенный в EC2, с помощью команды top . Я видел одну команду jbd2_sda1-8 . Я не мог понять, для чего используется эта команда. Я видел, что команда была вызвана пользователем www-data , и она показывает 200% использования ЦП для этой команды. Насколько мне известно, www-data означает, что команда была вызвана каким-то приложением, запущенным на моей машине. Я использую PHP-7.1 и Nginx для своего сайта drupal. Я выполнил команду sudo service php7.1-fpm restart . Потом проверил процессы. Процесс был убит. Итак, я предполагаю, что команда была вызвана каким-то процессом php. Я проверил мониторинг EC2, мой ЦП снизился до 3%.

Все казалось нормально около часа, внезапно я снова получил предупреждение от AWS о высокой загрузке ЦП. Я проделал тот же процесс для отладки. На этот раз я увидел другую команду kjournald . Этот процесс требует высокой загрузки ЦП, в том числе из-за пользователя www-data .

Я запутался, я попытался выяснить значение этой команды, я ничего не понял и не обнаружил никакой связи между старым и новым процессом.

Эта проблема продолжает возникать. Если я перезапущу php, процесс будет остановлен, и через некоторое время он снова появится. Я не знаю, в чем проблема.

Мои эксперименты по устранению неполадок:

  • Я скопировал код и поместил его в свою промежуточную среду, на этой машине, я не сталкиваюсь с проблемой (поскольку это промежуточная стадия, нет трафик вообще). Я попытался сопоставить производственный DNS-сервер с промежуточным, поскольку он не вызывал никаких проблем, но после сопоставления DNS такая же проблема возникла и во второй среде. Первый экземпляр стал нормальным.
  • Я включил мониторинг доступа в nginx и проверил все необычные запросы, поступающие во время 100% CPU (чтобы проверить, не подвергался ли мой сайт какой-либо атаке). Я не смог найти ни одного подозрительного запроса во время скачка ЦП.
  • Я включил мониторинг доступа в ELB и проверил запросы с помощью AWS athena. Там тоже ничего не нашел.

Я застрял здесь. Понятия не имею, что происходит. Кто-нибудь может помочь?

0
задан 10 January 2020 в 16:06
1 ответ

Если kjournald потребляет много ресурсов, это означает, что ваша ОС выполняет много операций по записи, которые возникают при изменении файловой системы (дисковые операции).

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

Используйте lsof, чтобы посмотреть, какие файлы используются вашей операционной системой в данный момент времени.

В противном случае, если бы ваше окружение Production и Staging были созданы одновременно, с тем же классом экземпляра, в том же AZ, и вы уверены, что ваше PHP-приложение хорошо спроектировано (должно быть в порядке, если его Drupal), и вы ничего не изменили в последнее время, я бы подумал о перепроектировании экземпляров EC2.

Сделайте снэпшот и переразверните, в идеале на другой класс экземпляров, чтобы убедиться, что вы переходите в стек другой инфраструктуры.

Я предполагаю, что экземпляры поддерживаются EBS, и в этом случае они могут использовать какое-то блочное хранилище в AWS, которое пошло не так.

1
ответ дан 11 January 2020 в 22:38

Теги

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