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

Amazon EC2 t1.micro + nginx + php-fpm = иногда очень медленно

Сначала кое-что об инфраструктуре:

Мы перенесли один из наших внутренних / административных серверов на Amazon. Приложения на этом сервере используются только спорадически (макс. 10 параллельных пользователей). Мы используем экземпляр t1.micro под управлением Gentoo. В качестве веб-сервера мы используем nginx в сочетании с PHP-FPM. Проблема в том, что иногда сервер работает очень медленно, что означает, что странице требуется 10-20 секунд для загрузки (максимум 2 секунды в моей локальной среде разработки, и эти страницы тяжелые ... 80 МБ +). Я попытался проанализировать и воспроизвести ошибку, но выяснил, что с памятью все в порядке (270 МБ свободно), а загрузка процессора составляет 100%.

Конфигурация:

nginx имеет 2 рабочих и макс. 1024 соединения.

PHP-FPM (я удалил комментарии)

error_log = /var/log/php-fpm.log

...

;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ; 
;;;;;;;;;;;;;;;;;;;;

[www]

listen = 127.0.0.1:9000

user = www
group = www

pm = dynamic

pm.max_children = 8

pm.start_servers = 2

pm.min_spare_servers = 2

pm.max_spare_servers = 4

pm.max_requests = 100

Надеюсь, кто-то знает, что делать :)

Микроинстансы EC2 обеспечивают короткие всплески загрузки ЦП, а не постоянную мощность ЦП. Это ожидаемое поведение. Микроэкземпляры будут обеспечивать полную мощность ЦП максимум на несколько минут, а затем ограничивают ее до 5-10% емкости. Если вы посмотрите в top вы увидите высокое значение для 'st', это кража ЦП у гипервизора (т.е. ЦП, который вы не можете использовать / с тонкой подготовкой).

Экземпляры этого семейства предоставляют небольшое количество постоянных ресурсов ЦП и позволяют увеличить мощность ЦП, когда доступны дополнительные циклы. Они хорошо подходят для приложений с низкой пропускной способностью и веб-сайтов, которые периодически используют значительные вычислительные циклы.

-Amazon

Взгляни на http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/concepts_micro_instances.html где вы найдете подробную информацию о t1.micro и его сравнении с другими типами экземпляров (например, m1.small). Это поможет понять поведение экземпляра.

Коротко: как только вы превысите фазу «короткого всплеска», вы получите большое количество ЦП 'st' (показано с top) что все тормозит.