Приложение PHP с Web Root в Amazon EFS, использующее слишком большую пропускную способность EFS

Веб-корень /var/www/html монтируется на EFS

Монтирование с использованием обычной команды, рекомендованной AWS, и EFS общего назначения. Sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-name.efs.eu-west-1.amazonaws.com:/ html

Система работает как положено.

Похоже, мы исчерпали EFS-кредиты так быстро, что я не могу понять, что забирает всю пропускную способность и кредиты на звонки. - PHP Opcache включен - PHP Opcache также не проверяет временные метки, поэтому не требуется статистика, чтобы проверить, был ли файл изменен. - AllowOverride на Apache имеет значение None (без сканирования.htaccess и т. Д.)

Если я скручиваю для одного файла.php, я вижу через tcpdump, что после начального вызова нет никаких вызовов nfs, что здорово. tcpdump -vvv -s 200-портовый NFS

Даже если мой test.php включает в себя другие файлы.php для тестирования, к серверу не обращаются.

Однако, если я сделаю tcpdump и свернусь с Zend Framework Application, произойдет несколько вызовов. Это только для приложения ZF (нет изображений, загружаемых). Все файлы PHP должны быть в opcache, поэтому я не уверен, для чего нужны все эти вызовы.

Любая идея, что вызывает эту огромную пропускную способность на EFS? Кажется, мы используем 300 МБ каждые 5 минут для простого приложения.

1 ответ

Есть несколько способов собрать информацию для этой проблемы.

Для всех этих методов я рекомендую использовать инструмент, который может обрабатывать и визуализировать файлы журналов. Для этого я использую Amazon Athena, что упрощает загрузку лог-файлов Amazon из S3. Еще один инструмент визуализации - Amazon QuickSight.

  1. Изучите файлы журналов для вашего приложения. Попробуйте определить трафик, который является нормальным, чтобы выяснить, есть ли неожиданный трафик. У вас могут быть хорошие или плохие боты, троллящие ваш сайт. Amazon WAF может помочь заблокировать плохой трафик.
  2. Включить VPC Flowlogs. Flowlogs покажет вам весь сетевой трафик. Вы можете детализировать до вашего экземпляра и EFS. Затем Афина может показать вам, кто с кем разговаривает и где используется полоса пропускания.
  3. Включить CloudTrail. CloudTrail покажет вам все API, выпущенные для EFS (и многое другое). Это может определить что-то неожиданное.
  4. CloudWatch. CloudWatch может отображать метрики для вас, чтобы вы могли определить время суток, когда используется пропускная способность EFS. Вы также можете установить будильник, чтобы уведомлять вас по электронной почте, SMS и т. Д. Многие другие функции помогают контролировать вашу инфраструктуру.

Пожалуйста, обновите эту тему, как только вы это выясните. Ваш опыт и информация помогут другим.

Другие вопросы по тегам