Сначала кое-что об инфраструктуре:
Мы перенесли один из наших внутренних / административных серверов на 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
) что все тормозит.