Скільки RAM потрібно 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 МБ, а в мультисайті — 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. Надто високе значення під навантаженням з’їдає пам’ять. - Невелика область swap не дає серверу впасти під час коротких сплесків. Але swap лежить на диску й повільний, тож він не замінює RAM.
Якщо ви спробували все це, а пам’ять усе одно заповнюється, час збільшувати. Спершу виміряйте: проблема виникає в години пік чи цілий день? Як загальний поріг, розгляньте збільшення, якщо available пам’ять у години пік часто падає нижче 10-15 відсотків від загальної RAM або якщо swap використовується постійно. Це не жорстке правило, а лише відправна точка.
Збільшення з панелі
У панелі Seturack сервер збільшують повзунком на вкладці «Розмір». Після оплати сервер сам перезапускається один раз, а IP-адреса й дані не змінюються. Тому старт із невеликого розміру — безпечний шлях. Сервер зі встановленим WordPress готовий приблизно за 3,5-4 хвилини. Загляньте на сторінку сервера WordPress.
Коментарі0
Коментарів поки немає
Поділіться своєю думкою першим.
Будь ласка, увійдіть або зареєструйтеся, щоб залишити коментар.