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

Как сделать PHP более масштабируемым на Unix Apache

Я ищу бесплатные / недорогие способы сделать работу PHP на наших серверах Unix Solaris (под Apache) более масштабируемой и надежной. Вы рекомендуете бесплатную версию Zend Server? Есть ли другие решения?

Это для сайта, который иногда получает более 2 миллионов посещений в день при передаче 10 ГБ данных за тот же период. Спасибо.

Это зависит от вашего текущего узкого места и текущего поведения PHP.

  • Если ваши сценарии PHP довольно малы, быстро реагируют и не имеют внешних зависимостей (например, SQL-запросы, и в этом случае сервер базы данных может легко стать настоящим узким местом), вам обычно не нужны какие-либо изящные методы. Правильная настройка ограничений процесса в httpd.conf и, возможно, добавление кеша операционного кода, такого как XCache может быть хорошей идеей.

  • Если ваш веб-сайт интенсивно использует базу данных, тогда правильное кеширование и memcached могут быть твоими друзьями. Однако не устанавливайте memcached просто вслепую - это становится необходимым только при большой нагрузке или если ваши SQL-запросы занимают много времени, и в этом случае memcached может очень помочь. Если у вас только небольшие базы данных и запросы SQL всегда выполняются быстро, memcached не поможет вам, если вообще поможет. 2 миллиона посещений в день - это неплохое количество, но для приличного сервера не так уж много, если только ваш сайт не тяжелый (или материал The Daily WTF :-)) на стороне ресурса / кода.

  • Можно ли кэшировать контент на вашем сайте? Предоставляет ли он такие вещи, как новости, которые меняются только время от времени, или он ОЧЕНЬ динамичный, как Facebook? Если он кэшируемый, рассмотрите возможность использования внешнего прокси, например Кальмарили, если вы можете себе это позволить и вашему бизнесу это действительно нужно, какое-нибудь аппаратное решение.

Вы можете попробовать APC. Недавно мы установили его на сервере в нашей компании. Сервер обслуживает высоконагруженный веб-сайт, и результат был очень хорошим - почти 40% -ное улучшение нагрузки.

Об использовании различных решений: NGINX + PHP-FPM считается хорошей альтернативой Apache (на самом деле мы тоже используем его в нашей компании, и он работает очень хорошо, но в настоящее время я не могу провести полное сравнение с Apache)

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

Сколько операций ввода-вывода выполняется? Насколько загружены процессоры? Каково ваше использование памяти? Поддерживается ли сайт базой данных? Если да, то находится ли эта БД на том же хосте? Каково использование хоста БД? Какая полоса пропускания существует между веб-сервером и сервером БД? и т.п.