Зависание запросов Apache с использованием Ubuntu AMI на томе EFS

Зависание запросов Apache с использованием Ubuntu AMI на томе EFS

Я заметил странное поведение в настройке, которую я создал на AWS (регион eu-south-1) для оценки миграции от нашего текущего провайдера. Я хочу развернуть 1-n экземпляров EC2, которые обслуживают веб-запросы через Apache, обслуживая файлы, хранящиеся на общем томе EFS. Я уже реализовал и протестировал часть RDS, производительность PHP, интеграцию ElasticCache и так далее. Однако я заметил задержку в 5 секунд при спорадических запросах, задержка, которая казалась очень детерминированной и слишком близкой к значению в 5 секунд. Том EFS находится в режиме burst-режиме, кредиты высоки (2T), а процент использования действительно низок, так что это не должно быть проблемой.

Я смонтировал том EFS с предложенными параметрами, как с помощью "EFS mount helper", так и "NFS Client", ничего не изменилось. Поэтому я попытался перезапустить с нуля, установив только веб-сервер Apache по умолчанию (даже пробовал с Nginx с похожими результатами) и смонтировав том EFS и выполнив бенчмаркинг с другого экземпляра EC2 с помощью следующей команды:

siege -c 2 -r 20 -b http://35.152.48.17/efs-mount-point/efs-test/logo.png

В Ubuntu 18.04 и Ubuntu 20.04 самая длинная транзакция всегда превышает 5 секунд (5,12 - 5,42 секунды). В AmiLinux же самая длинная транзакция достаточно быстрая (0,15 секунды). Интересно, что если я уменьшу количество параллельных клиентов с 2 до 1:

siege -c 1 -r 20 -b http://35.152.48.17/efs-mount-point/efs-test/logo.png

самая длинная транзакция также будет приемлемой в Ubuntu, даже если я позволю «siege» работать большее количество раз:

siege -c 1 -r 10000 -b http://35.152.48.17/efs-mount-point/efs-test/logo.png

Однако, если мы удалим переменную EFS в Ubuntu и будем обслуживать файлы из локального EBS, самая длинная транзакция будет молниеносно быстрой (несколько миллисекунд), поэтому проблема возникает только на EFS с Ubuntu (как 18.04, так и 20.04). Может быть, предлагаемые параметры монтирования работают для AmiLinux, но чего-то не хватает для Ubuntu AMI?

Этапы воспроизведения настолько просты, что мне это кажется странным:

  1. выберите Ubuntu 18.04 AMI;
  2. смонтировать том EFS (с помощью «помощника по монтированию EFS» или с помощью клиента NFS);
  3. установите Apache, обновив только обслуживающий каталог.

Любое предложение?

решение1

Я наконец нашел решение.

Проблема возникает только в ядрах "5.4.0-1029-aws" и "5.4.0-1032-aws". Проблема, похоже, решена в версиях ядра "5.4.0-1034-aws" и "5.4.0-1035-aws".

Итак, вам просто нужно обновить ядро:

sudo apt-get-update
sudo apt-get install linux-image-5.4.0-1035-aws

Затем, после перезагрузки, у вас должно быть новое ядро. Проверьте это с помощью следующей команды:

uname -r

Вы должны увидеть следующий результат:

5.4.0-1035-aws

Тогда у вас больше не должно быть задержек.

Связанный контент