Память и производительность с PHP как DSO, FCGID или SuPHP и xCache - PullRequest
1 голос
/ 07 марта 2012

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

Мой сервер - это VPS с cPanel (WHM), а режим PHP - SuPHP. Сервер имеет 768 МБ оперативной памяти и содержит около 12 веб-сайтов. Некоторые из них довольно интенсивно используют память, тогда как другие почти не используют память или процессор вообще.

Я недавно установил магазин Magento для одного из своих клиентов и с тех пор экспериментировал с различными настройками, чтобы добиться увеличения производительности. Ничего не помогало, пока я не установил xCache и не настроил PHP для работы в качестве FCGID или DSO (потому что xCache не будет работать с SuPHP). Эта конфигурация повысила производительность на 2/3 (то есть страницы загружались примерно в 3 раза быстрее).

Единственный недостаток состоял в том, что через несколько минут серверу не хватило памяти, и мне пришлось выполнить его полную перезагрузку. Так что теперь я вернулся в SuPHP, и все в порядке.

Даже если я отключил xCache и оставил только режим FCGID или DSO вместо SuPHP, серверу не хватило памяти примерно через 30 минут или около того. Таким образом, виновником, похоже, является PHP, работающий как и все остальное, чем SuPHP.

Я также заметил, что использование моей памяти возросло, когда я открыл новый интерфейсный URL-адрес от другого пользователя, определенного WHM, но использование, похоже, оставалось довольно постоянным, когда я открыл несколько URL-адресов из одной учетной записи пользователя WHM. .

Кстати, тогда:

  • Как я могу убедиться, что PHP + xCache работает стабильно? Или мне просто нужно купить больше памяти?
  • Каковы различия в использовании памяти между SuPHP, DSO и FCGID? Можно ли настроить это, изменив некоторые php.ini vars?

Кроме того, я собираюсь обновить некоторые другие мои серверы для использования xCache. Какую конфигурацию настроек и режима PHP (SuPHP, DSO или FCGI) и xCache вы бы порекомендовали для следующих серверов?

  • Четырехъядерный процессор с частотой 2,4 ГГц, 4 ГБ выделенного сервера ОЗУ с 1 огромным магазином Magento, cPanel и WHM
  • Четырехъядерный процессор с частотой 2,4 ГГц, 8 ГБ ОЗУ и около 20 крупных магазинов Magento с cPanel и WHM
  • Четырехъядерный процессор @ 2,66 ГГц, 8 ГБ ОЗУ-сервер с более 100 Joomla-подобными веб-сайтами, cPanel и WHM, также выполняющие функции почтового сервера с включенным почтальоном и т. Д.

1 Ответ

5 голосов
/ 07 марта 2012

Поскольку вы используете cPanel - вы можете легко установить Munin (графический плагин). Перейдите на WHM, введите плагины в поле поиска и установите Munin.

Пусть он соберет некоторую статистику за неделю, тогда у вас будет хороший обзор использования памяти.

SuPHP на самом деле довольно интенсивно использует процессор, поэтому вы захотите переключиться.

Мы рекомендуем PHP-fCGI при использовании cPanel, это капля замены и работает хорошо. Мы компилируем с Eaccellerator - так как мы проверили все другие варианты (APC / Xcache) и обнаружили, что он является самым быстрым со значительным запасом. Я вхожу в некоторые детали здесь об этом http://magebase.com/magento-tutorials/magento-session-storage-which-to-choose-and-why/comment-page-1/#comment-1986

Если вы сталкиваетесь с ошибками OOM (нехватка памяти), то вы, вероятно, обнаружите, что чрезмерно загружаете память; это результат двух вещей (мы просто сосредоточимся на PHP):

  1. Слишком высокий предел памяти PHP
  2. Слишком много процессов PHP

Вам нужно ограничить одну из двух. Для небольшого VPS, как у вас, вы будете бороться с 768 МБ оперативной памяти. Мы никогда не выступаем за использование VPS, поскольку вы слишком ограничены для эффективного запуска Magento.

Исходя из ваших спецификаций, сервер ОЗУ 2,4 ГГц, 8 ГБ не сможет работать с 20 "большими" сайтами Magento. Чтобы представить это в перспективе, обычно (для общего хостинга) мы размещаем максимум 8 хранилищ на 3,3 ГГц, 16 ГБ ОЗУ сервер.

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

...