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

Приложение PHP с веб-корнем на 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 и curl в приложение Zend Framework, произойдет несколько вызовов. Это только для приложения ZF (изображения не загружаются). Все файлы PHP должны находиться в opcache, поэтому я не уверен, для чего нужны все эти вызовы.

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

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

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

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

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