Сколько оперативной памяти нужно WordPress?
Сам WordPress требует мало памяти, а в его официальных требованиях объём RAM не указан. Для небольшого сайта хорошая отправная точка — обычно 1–2 ГБ RAM (ориентир, который зависит от сайта). Магазины, множество плагинов и большой трафик могут поднять потребность до 4 ГБ и больше.
Что нужно именно вам, зависит от типа сайта: плагинов, трафика, размера базы данных и включённого кэширования. В статье рассказано об официальных цифрах, о том, что съедает память, и как понять, что её не хватает.
Что говорят официальные требования?
На странице требований к хостингу на WordPress.org (официальная рекомендация) указаны PHP 8.3 или новее, MariaDB 10.11 или MySQL 8.0 или новее и поддержка HTTPS. В качестве веб-сервера рекомендуются Apache или Nginx. Объём RAM на странице не указан. Старые версии, такие как PHP 7.4 и MySQL 5.5.5, всё ещё работают, но на странице отмечено, что их поддержка закончилась и они небезопасны. При новой установке выбирайте рекомендуемые версии.
Единственные официальные цифры по памяти — это лимиты, которые PHP выделяет WordPress. При установке одного сайта WP_MEMORY_LIMIT по умолчанию равен 40 МБ, а в режиме multisite — 64 МБ. Админка использует WP_MAX_MEMORY_LIMIT, и ядро WordPress по умолчанию пытается поднять его до 256 МБ. Это потолки для одного запроса PHP, а не общий объём RAM сервера. Значения для вашего сайта можно проверить в разделе Tools > Site Health > Info: лимит памяти PHP указан в разделе Server, а WP_MEMORY_LIMIT и WP_MAX_MEMORY_LIMIT — в разделе WordPress Constants.
Что на самом деле занимает RAM?
- Процессы PHP. Каждый одновременный запрос запускает процесс PHP. В PHP-FPM параметр
pm.max_childrenограничивает, сколько их может работать одновременно (см. руководство PHP). В зависимости от плагинов один процесс может занимать от десятков до сотен мегабайт. Это общее наблюдение, и от сайта к сайту оно разное. - База данных. MariaDB или MySQL держит часто читаемые данные в памяти. Большим сайтам с множеством плагинов нужно больше.
- Кэш операционной системы. Linux использует свободную память как дисковый кэш. Если в выводе
free -hсвободной памяти мало, это не проблема. Смотрите лучше на столбец available. - Слои кэша. Кэш объектов (например, Redis) уменьшает число запросов к базе данных, но сам занимает память.
Вот простой пример. На сервере с 2 ГБ RAM, если отвести около 1 ГБ на операционную систему и базу данных, для PHP останется 1 ГБ. Если один процесс PHP в среднем занимает 100 МБ, разумно держать pm.max_children около 10. Эти числа лишь показывают, как устроен расчёт. Ваши собственные измерения могут оказаться другими.
Стартовый размер по типу сайта
Эти значения — ориентиры. Они зависят от плагинов и трафика и не являются твёрдым обещанием.
| Тип сайта | Начальный объём RAM | Примечание |
|---|---|---|
| Небольшой блог или сайт-визитка, мало плагинов | 1–2 ГБ | Включите кэширование страниц |
| Сайт компании с множеством форм и изображений | 2–4 ГБ | Уменьшите размер изображений |
| Конструктор страниц, сайт с подпиской, много плагинов | 4 ГБ | Больше страниц, которые нельзя кэшировать |
| Интернет-магазин (WooCommerce) | 2–4 ГБ, больше по мере роста | Страницы корзины и оформления заказа кэшировать нельзя |
Если вы строите магазин, прочитайте также нашу статью «Выбор сервера для WooCommerce».
Что вы увидите, когда RAM заканчивается?
- Сайт время от времени возвращает ошибку 502 или 503. PHP-FPM или веб-сервер не успевает ответить.
- Появляется сообщение «Error establishing a database connection». Возможно, база данных была остановлена из-за нехватки памяти.
- Админка становится очень медленной, а обновления плагинов и загрузка изображений зависают на полпути.
Чтобы убедиться, подключитесь к серверу и выполните эти команды:
free -h
sudo journalctl -k | grep -i -E "out of memory|oom-kill"
Вторая команда выводит события, когда ядро остановило программу из-за нехватки памяти. Если она выводит строки, RAM не хватает. В top нажмите Shift+M, чтобы увидеть процессы, которые занимают больше всего памяти.
Что можно попробовать до увеличения
- Настройте кэш страниц — плагином или на стороне сервера. Страница, отданная из кэша, не запускает ни PHP, ни базу данных.
- Удалите плагины, которыми не пользуетесь. Каждый активный плагин загружает свой код при каждом запросе.
- Подберите
pm.max_childrenв PHP-FPM под вашу память. Примерно: разделите память, которую можно отдать PHP, на среднюю память одного процесса PHP. Слишком большое значение под нагрузкой съедает память. - Небольшая область подкачки не даёт серверу упасть при коротких всплесках. Но подкачка находится на диске и работает медленно, так что RAM она не заменяет.
Если вы попробовали всё это, а память всё равно заполняется, пора увеличивать сервер. Сначала измерьте: проблема проявляется в часы пик или весь день? Как общий порог: подумайте об увеличении, если available в часы пик часто падает ниже 10–15 процентов от всей RAM или если подкачка используется постоянно. Это не жёсткое правило, а лишь отправная точка.
Увеличение из панели
В панели Seturack сервер увеличивается ползунком на вкладке «Размер». После оплаты сервер один раз перезапускается сам, а IP-адрес и данные остаются прежними. Поэтому начать с маленького размера безопасно. Сервер с предустановленным WordPress готов примерно за 3,5–4 минуты. Загляните на страницу сервера с WordPress.
Комментарии0
Комментариев пока нет
Поделитесь своим мнением первым.
Пожалуйста, войдите или зарегистрируйтесь, чтобы оставить комментарий.