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