Apache mod php или FastCGI? Что хорошо для Wordpress?

У меня есть основная идея о запуске PHP в разных конфигурациях, таких как mod_php, cgi, FastCGI и т. д.

в моих выводах и тесте я обнаружил, что FastCGI немного лучше. Мне больше всего нравится поддержка FastCGI для SuEXEC. Подождите, я не хочу снова заниматься бенчмаркингом. Если вы занимаетесь серфингом в интернете, вы найдете людей, доказывающих, что один способ быстрее, чем другой, с точки зрения количества запросов, обрабатываемых в секунду. Хорошая метрика, но меня интересуют разные факторы, и вот мой вопрос...

  1. какой метод запуска PHP потребляет меньше памяти?
  2. также Какой метод потребляет память почти постоянной. Я вижу, что с mod_php использование памяти моих серверов колеблется между 300MB и 800MB каждые несколько секунд.
  3. но с FastCGI, первый ответ от сервера приходит очень поздно. Я вижу, что с FastCGI есть начальная задержка на запрос веб-страницы. Как только приходит первый ответ от сервера, другие элементы, такие как изображения, css, JS, загружаются довольно быстрее.
  4. это нормально работать вместе? У меня есть 5 сайтов на выделенном сервере. Это нормально, если я запускаю несколько с mod_php и отдыхаю с FastCGI?
  5. Я уверен, что мой сервер падает в основном из-за неправильного использования памяти mod_php. Я проверил все сценарии. Есть ли способ убедиться, что потребление памяти на сервере остается почти постоянным?
  6. не сложность .htaccess значительно влияет на использование памяти? Если да, может ли это быть единственной причиной для запуска сервера память?
  7. влияют ли настройки Apache MPM prefork / worker на потребление памяти? Влияют ли они на mod_php и режим FastCGI одинаково?
  8. когда я запускаю команду "top", я вижу, что apache (httpd) потребляет память около 40 МБ. Существует множество запущенных экземпляров httpd. Также В дополнение к этому FastCGI развивает некоторые процессы аналогичного размера. Какой нормальный размер памяти для процесса httpd?
  9. поскольку я запускаю Wordpress на всех наших сайтах, что будет хорошим способом в этом контекст?
  10. FastCGI / SuExec отлично работает с APC? Нужно ли переконфигурировать APC для работы с SuEXEC и FastCGI.

обратите внимание, я меньше заинтересован в выживании против DIGG или дорожных шипов. Мне нужен способ, который может сделать сервер стабильным и предсказуемым.

Извините, если я запутался, но я действительно в беспорядке. У меня 512 МБ ОЗУ, 400 МБ свопа и мой сервер работает из памяти, как сумасшедший. Среднее требование к памяти вокруг 350MB, его как раз всплески использования памяти делают память недоступной в течение нескольких секунд, и если несколько дополнительных хитов, полученных в этих нескольких секундах, apache разбился, а mysql и все другие парни продолжают работать нормально.

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

2 ответов


какой метод запуска PHP потребляет меньше памяти?

Я предполагаю, что в PHP-обработанном запросе они более или менее одинаковы. Но если у вас есть mod_php, загруженный в Apache, обслуживающий изображения, то я предполагаю, что ваш объем памяти будет выше из-за обслуживания статических файлов.

также Какой метод потребляет память почти постоянной. Я вижу, что с mod_php использование памяти моих серверов колеблется между 300MB и 800MB, каждые несколько считанные секунды.

вы можете сделать довольно постоянным. Если вы тщательно установите MaxClients, MinSpareServers и MaxSpareServers, вы в значительной степени можете сказать, сколько процессов запущено. Если вы также установите memory_limit в своей конфигурации PHP,вы можете рассчитать, сколько памяти вам нужно. Вы также можете сделать то же самое для fcgi, так как вы можете решить, сколько процессов запущено.

но с FastCGI, первый ответ от сервера приходит очень поздно. Я вижу, что с FastCGI есть начальная задержка на запрос веб-страницы. Как только приходит первый ответ от сервера, другие элементы, такие как изображения, css, js, загружаются довольно быстро.

Это не имеет смысла. Я не уверен, почему это происходит в вашем случае.

можно ли запустить mix обоих? У меня есть 5 сайтов на выделенном сервере. Это нормально, если я запускаю несколько с mod_php и отдыхаю с FastCGI?

Я думаю, но это будет кошмар для поддержания и, вероятно, будет сложнее настроить для экономия. Как раз наоборот, я думаю.

Я уверен, что мой сервер падает в основном из-за неправильного использования памяти mod_php. Я проверил все сценарии. Есть ли способ убедиться, что потребление памяти на сервере остается почти постоянным?

настройте память и процессы, как я описал выше, и продолжайте мониторинг.

Не сложность .htaccess значительно влияет на использование памяти? Если да, то может ли это быть единственная причина, по которой у сервера заканчивается память?

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

влияют ли настройки Apache MPM prefork / worker на потребление памяти? Влияют ли они на mod_php и режим FastCGI одинаково?

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

когда я запускаю команду "top", я вижу, что apache (httpd) потребляет память около 40 МБ. Существует множество запущенных экземпляров httpd. Также В дополнение к этому FastCGI развивает некоторые процессы аналогичного размера. Какой нормальный размер памяти для процесса httpd?

30MB минута. Верхний предел зависит от вашего приложения (я видел случаи, когда это было ~1 ГБ)

поскольку я запускаю Wordpress на всех наших сайтах, что будет хорошим способом этот контекст?

Это, вероятно, вопрос вкуса. Недавно я отошел от apache в сторону nginx+fastcgi. это займет немного времени, чтобы привыкнуть, но это работает хорошо. Никаких проблем с wordpress (даже не с supercache, который скорее связан с веб-сервером).

FastCGI / SuExec отлично работает с APC? Нужно ли переконфигурировать APC для работы с SuEXEC и FastCGI.

Я не использую suExec, но fastcgi хорошо работает с APC. Не нужно ничего настраивать.


попробовал переключиться на mod_php, который, многие утверждают, что это скорость. Не понял mod_php, который ожоги через дополнительную память при подаче статические файлы. (Я не очень заботился о проблеме безопасности с файлами root owning).

без установки CDN,FastCGI-сервера ваш выбор для обслуживания приложений PHP. Без него переключение с fcgi по to mod_php, который замедлился моя страница время создания пути вниз, от 3895ms в 6264ms (страницы админа хостинга).