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

Debian / Nginx / PHP5-FPM на Xen. Это правильный выбор?

У меня есть сложное веб-приложение, работающее на стеке Debian / Nginx / PHP5-FPM. У приложения обычно ~ 600 онлайн-пользователей каждый раз и ~ 5000 уникальных пользователей в день.

Стек работает на виртуальной машине на базе Xen с 2 выделенными ядрами (Intel Xeon E5420) и 2 ГБ ОЗУ.

Я вижу, что PHP5-FPM использует много ЦП, обычно 10-20%, но иногда даже 100% в течение нескольких минут. Средняя нагрузка (от команды uptime) составляет «~ 1,5, ~ 2, ~ 2,5», но я видел более высокие значения (около 10).

Мне было интересно, достаточно ли мощна виртуальная машина для запуска этого приложения. И, что более важно, мне было интересно, действительно ли использование Xen является хорошим выбором или нет (на сервере есть еще две виртуальные машины).

Заранее спасибо!

Xen очень хорош для ЦП / памяти во всех приложениях, но не так хорош для ввода-вывода / сети (если вы не используете lun с прямым подключением, например NPIV или что-то еще, что обходит стек dom0 io)

поэтому вам нужно провести некоторый анализ вашей нагрузки, попробуйте использовать vmstat / iostat, чтобы выяснить, загружен ли его cpu / io

Судя по предоставленной вами информации, похоже, что вы приближаетесь к краю. Общее практическое правило состоит в том, что средние нагрузки более 1 должны вызывать беспокойство, а если вы дойдете до 4 или 5, возникнет явная проблема. Нагрузка определяется количеством процессов, ожидающих ресурса, которым может быть диск, сеть или ЦП. Если вы видите максимальную загрузку ЦП, если ваше среднее значение составляет 15% и вы видите значения нагрузки выше 1, то узким местом, вероятно, будет доступ к диску. Природа VPS заключается в том, что производительность диска часто будет намного хуже, чем на выделенном сервере, более мощный VPS, вероятно, будет иметь такую ​​же производительность, поэтому бесполезен.

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

Самым важным является то, что вы проводите больше тестов, чтобы знать наверняка.

Чтобы ответить на ваш вопрос, XEN прекрасен, его используют многие крупные производственные площадки. однако, если у вас загруженная база данных, что обычно означает большую активность диска, то XEN или виртуализация в целом могут быть не лучшим решением.