Apache mod_php ИЛИ FastCGI? Что хорошо для Wordpress?

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

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

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

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

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

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

2 ответа

Решение

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

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

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

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

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

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

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

Полагаю, что обслуживать это будет и кошмар, и, вероятно, будет сложнее настроить его для экономии памяти. Наоборот, я верю.

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

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

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

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

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

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

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

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

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

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

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

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

Пробовал переключаться на mod_php, много претензий по поводу его скорости. Не осознавал, что mod_php прожигает лишнюю память при обработке статических файлов. (Меня не очень волновала проблема безопасности с файлами, владеющими рутом).

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

Другие вопросы по тегам