У меня есть основное представление о запуске PHP в разных конфигурациях, таких как mod_php, cgi, FastCGI и т. Д.
В моих выводах и тестах я обнаружил, что FastCGI немного лучше. Мне нравится поддержка FastCGI для SuEXEC. Подождите, я не хочу снова заниматься бенчмаркингом. Если вы работаете в Интернете, вы обнаружите, что люди, доказывающие один из способов, быстрее, чем другие, с точки зрения количества запросов, обрабатываемых в секунду. Ну его хорошие показатели, но меня интересуют разные факторы, и вот мои вопросы …
Обратите внимание, что меня меньше интересует выживание против DIGG или трафик. Мне нужен способ, который может сделать сервер стабильным и предсказуемым.
Извините, если я запутался, но я действительно в беспорядке. У меня 512 Мбайт физической памяти, 400 Мб Swap, и у моего сервера заканчивается память, как сумасшедшая. Средняя потребность в памяти составляет около 350 МБ, это просто всплески использования памяти, что делает память недоступной в течение нескольких секунд, и если несколько лишних ударов, полученных в этих нескольких секундах, апача потерпела крах, а mysql и все остальные ребята продолжали работать нормально.
Пожалуйста, помогите мне, ребята. Я не собираюсь покупать больше оперативной памяти или оборудования. Я чертовски уверен, что проблема в моей конфигурации. Извините, если я чувствую себя высокомерным или невежественным.
Какой метод работы PHP потребляет меньше памяти?
Я предполагаю, что на каждый обработанный PHP запрос они более или менее одинаковы. Но если у вас есть mod_php, загруженный в apache, обслуживающий изображения, то я предполагаю, что ваш объем памяти будет выше из-за обслуживания статических файлов.
Также этот метод потребляет память почти постоянной. Я вижу, что использование памяти my mod_php варьируется от 300 МБ до 800 МБ, каждые несколько секунд.
Вы можете сделать оба довольно постоянными. Если вы тщательно установите MaxClients, MinSpareServers и MaxSpareServers, вы в значительной степени сможете определить, сколько процессов выполняется. Если вы также установите memory_limit в своей конфигурации PHP, вы можете рассчитать, сколько памяти вам нужно. Вы можете сделать то же самое и для fcgi, так как вы можете решить, сколько процессов выполняется.
Но с FastCGI первый ответ с сервера приходит очень поздно. Я вижу, что с FastCGI существует начальная задержка на запрос веб-страницы. Когда первый ответ с сервера приходит, другие элементы, такие как изображения, css, js, загружаются довольно быстро.
Это не имеет смысла. Я не уверен, почему это происходит в вашем случае.
Можно ли запустить сочетание обоих? У меня есть 5 сайтов на выделенном сервере. Это нормально, если я немного запускаю mod_php и отдыхаю с FastCGI?
Я думаю, но это будет кошмар для поддержания и, вероятно, будет сложнее настроить для экономии памяти . Наверное, я верю.
Я уверен, что мой сервер отключается в основном из-за неправильного использования памяти mod_php. Я проверил все сценарии. Есть ли способ убедиться, что потребление памяти на сервере остается почти постоянным?
Настройте память и процессы, как я изложил выше, и продолжайте мониторинг.
Значительно ли влияет сложность .htaccess на использование памяти? Если да, может ли это быть единственной причиной для того, чтобы у сервера не хватило памяти?
Я так не думаю. per-directory .htaccess может замедлить работу, но если в Apache не существует серьезной ошибки, это не должно вызывать массовое потребление памяти.
Параметры apache MPM prefork / worker влияют на потребление памяти? Они влияют на 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 мс (страницы администратора на общем хостинге).