На этот вопрос уже есть ответ:
Я бы хотел поделиться своей ситуацией, потому что может быть полезен другим, и мне нужен совет.
Я администрирую VPS с некоторыми веб-серверами и высоким трафиком.
Технические характеристики системы: x2 Xeon E2620 с 2 ядрами, 18 ГБ оперативной памяти и 800 ГБ жесткого диска.
Первым шагом, когда я получил полный доступ, была проверка конфигурации сервера.
Система содержит:
На первый взгляд (позже подтверждено ), настройки сервера и архитектура системы не оптимальны.
Сервер почти все время занят, а доступ в Интернет очень медленный.
Итак, я думаю, у меня есть несколько альтернатив, чтобы обойти эту ситуацию, потому что трафик только растет.
Это означает настройку Apache, preforks, MySQL, удаление ненужного программного обеспечения ... и т. Д.
ИЛИ
Моя идея, и я сомневаюсь, что вы порекомендуете для масштабирования.
nginx, php-fpm, varnish, APC ИЛИ nginx, работающие вместе с Apache.
Я думаю, что сначала лучше, потому что все они работают на одной машине.
Спасибо.
Итак, это довольно широкий вопрос, так что это будет общий ответ. Но да, вам будет намного проще масштабировать nginx. Я бы порекомендовал вам заменить Apache и mod_php
на nginx и php-fpm
. Я бы также обновился до PHP 5.6.x и начал использовать модуль Zend Opcache, включенный в него, вместо APC. Если вы также используете APC для «кеширования пользователя», а не только для кэширования кода операции,вы можете заменить функционал на модуль «APCu». Varnish действительно может быть полезен для повышения производительности обслуживания статических ресурсов, но я бы начал с низко висящих плодов.
Когда вы используете php-fpm
, ваши PHP-рабочие могут масштабироваться независимо от ваши входящие HTTP-соединения, которые могут дать вам преимущество в отношении использования памяти. Кроме того, веб-сервер может использовать потоки вместо процессов для обработки запросов, поскольку PHP работает вне области памяти веб-сервера.
С помощью метода mod_php
, который вы в настоящее время используете, тот же процесс, который принимает , ожидает и обслуживает запрос, также запускает интерпретатор PHP и сохраняет его в памяти до тех пор, пока запрос не будет полностью обработан.
Я думаю, вы на правильном пути; идите со своей интуицией, я бы поступил так, как описано выше. Всегда будет больше вещей, которые нужно настроить и оптимизировать, но, не зная подробностей о том, как используется система и что она обслуживает, трудно пойти намного глубже.