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

Как выбрать хорошие настройки VPS по умолчанию для PHP и Wordpress, когда дело касается памяти?

У меня (только) 512 МБ свободного места. Единственное, что работает на моем VPS, - это PHP / MySQL и поверх него Wordpress. Никакого почтового сервера или любого другого приложения, только Wordpress и стек LAMP.

Как решить, сколько памяти отдать PHP и Wordpress? Прямо сейчас PHP разрешено иметь 128 МБ, насколько безопасно увеличить его? Я попытался ответить на этот вопрос в Google, но так и не нашел ответов.

Как уже сказал Крейг Уотсон, вам следует не возиться с ограничением памяти PHP, если в этом нет необходимости.

В любом случае невозможно правильно определить размер сервера без глубокого понимания вашей рабочей нагрузки. Я предлагаю вам смоделировать реалистичную нагрузку и тем временем контролировать распределение / использование ресурсов вашего сервера.

Для чего важно, 512 МБ - это очень мало для любого производственного сервера. Фактически, их едва ли можно использовать даже для тестирования.

TL; DR - Не надо увеличьте свои пределы памяти ради этого. Для стандартного приложения PHP, такого как WordPress, 128 МБ огромный и должно хватить на 90% ваших потребностей.

Однако здесь есть несколько важных фактов:

Распределение памяти PHP для каждого скрипта / процесса

В соответствии с Документация PHP для max_memory вариант:

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

Важно отметить, что этот параметр не устанавливает объем памяти, доступный для все PHP-процессы - устанавливает максимум доступная память для один PHP-процесс.

Когда Apache получает запрос на страницу PHP, он разветвляет процесс PHP, который завершается, как только его работа завершена. Любая память, использованная во время этого запроса, затем возвращается в ОС, и весь цикл начинается снова со следующего запроса.

Вам следует никогда нужно настроить max_memory настройки, если вы не видите ошибки «Недостаточно памяти» от самого PHP, и это обычно происходит только тогда, когда вы:

  1. Работаем с большими наборами данных, в чем я очень сомневаюсь, если у вас сайт WordPress.
  2. Утечка памяти или другая проблема, что означает, что память не возвращается обратно в ОС, и правильный ответ на этот тип проблемы - исследовать исходную проблему, а не просто увеличивать пределы.

Настройка Apache

Если вас интересует настройка производительности, вам следует взглянуть на Apache MaxClients и связанные параметры в prefork модуль.

Я обычно резервирую 50 МБ для ядра и других системных процессов, а остальное добавляю для Apache и MySQL - есть различный онлайн гиды подробно описывая, как это сделать (я настоятельно рекомендую вам прочитать), но общая идея такова:

  1. Бегать top и проверьте, сколько памяти используется вашим средним процессом Apache (это RES столбец)
  2. Возьмите общую память, вычтите сумму, которую вы хотите зарезервировать для других процессов, и разделите на указанное выше число. Это количество одновременный соединения, которые Apache может обработать, прежде чем ему потребуется отворачивать клиентов.
  3. Отредактируйте конфигурацию Apache и установите MaxClients вариант к этому номеру.

Заметка я упомянул одновременные подключения выше, а не посетителей на вашем сайте. Это не одно и то же.

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