Назад | Перейти на главную страницу

Использование процессора 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, процесс будет остановлен, и через некоторое время он снова появится. Я не знаю, в чем проблема.

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

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

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

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

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

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

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

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