Малому магазину WooCommerce з добре налаштованим кешем зазвичай вистачає 5 PHP workers, магазину з кількома десятками замовлень на день потрібно близько 10, а розпродажу, коли сотні людей одночасно сидять у кошику, — 16 і більше. Точну кількість дає формула: кількість workers ≈ PHP-запити за секунду × середній час відповіді PHP у секундах, плюс запас на сплески трафіку.
Що таке PHP worker
PHP worker — це один процес, який у певний момент виконує код WordPress і WooCommerce для одного запиту. Отже, кількість PHP workers — це кількість запитів, які магазин обслужить одночасно, без черги. Коли всі workers зайняті, наступний запит чекає або отримує помилку — в Aderlo Cloud сервер тоді повертає код 508, а не мовчки сповільнюється.
Не кожен перегляд сторінки займає worker. Сторінка товару чи категорії, віддана з кешу (LSCache), взагалі не запускає PHP. Worker потрібен для того, що не можна закешувати: кошик, оформлення замовлення, обліковий запис клієнта, пошук, адмінпанель, AJAX-запити й завдання cron.
Як розрахувати, скільки workers вам потрібно
Середня кількість зайнятих workers — це добуток кількості PHP-запитів за секунду на середній час їх виконання (закон Літтла з теорії черг). До цього середнього значення додайте запас 50–100% на сплески, бо покупці не приходять рівним потоком.
workers ≈ (PHP-запити за секунду) × (середній час відповіді PHP у с) × 1,5–2
| Ситуація | PHP-запитів / с у пік | Середній час PHP | Зайняті workers (у середньому) | Із запасом |
|---|---|---|---|---|
| Малий магазин, звичайний день | 4 | 0,5 с | 2 | 3–4 |
| Середній магазин, email-кампанія | 10 | 0,5 с | 5 | 8–10 |
| Розпродаж, сотні людей у кошику | 20 | 0,6 с | 12 | 18–24 |
Час відповіді важить стільки ж, скільки трафік. Магазину, де кошик рахується 1,2 с замість 0,4 с, за того самого трафіку потрібно втричі більше workers — тому пришвидшення запитів часто дає більше, ніж дорожчий тариф.
Звідки взяти цифри для формули
PHP-запити за секунду
Порахуйте в логах сервера запити, які не влучили в кеш, за найгіршу хвилину минулого піку (заголовок
X-LiteSpeed-Cache: missабо відсутність цього заголовка), і поділіть на 60.Середній час відповіді PHP
Виміряйте час до першого байта (TTFB) для кошика, оформлення замовлення й пошуку з вимкненим кешем браузера. Плагін Query Monitor покаже, що триває найдовше.
Пік, а не середнє
Беріть годину розсилки або старт акції, а не середнє за добу — середнє приховує саме ті хвилини, коли магазин втрачає замовлення.
Один запит, який легко пропустити: wc-ajax=get_refreshed_fragments. У частині тем він спрацьовує на кожному перегляді й займає worker навіть тоді, коли сама сторінка прийшла з кешу.
Скільки workers мають тарифи Aderlo Cloud
| Тариф | PHP workers | Процесор і пам’ять | Ціна без ПДВ |
|---|---|---|---|
| Starter Store | 5 | до 1.5 vCPU, 2 ГБ RAM | €12 / міс. |
| Growth Store | 10 | до 3 vCPU, 4 ГБ RAM | €29 / міс. |
| Scale Store | 16 | до 5 vCPU, 6 ГБ RAM | €59 / міс. |
| Dedicated Commerce | 28 | до 8 vCPU, 10 ГБ RAM | €149 / міс. |
В Aderlo Cloud тарифи відрізняються потужністю, а не кількістю сайтів. Starter Store з 5 workers — розумний старт, Growth Store (10 workers) — тариф для магазину, де швидкість оформлення замовлення означає дохід, а Scale Store (16 workers) включає аудит продуктивності перед Black Friday. Перехід на вищий тариф — один клік у панелі.
Переглянути ціни →Коли більше workers не допоможе
- Повільна база даних. Велика таблиця
wp_optionsз autoload, відсутні індекси або тисячі прострочених transient-ів сповільнюють кожен запит. Workers просто паралельно чекають на базу. - Немає кешу сторінок. Без LSCache кожен перегляд товару займає worker. Увімкнення кешу часто зменшує потребу в кілька разів.
- Плагін, що звертається до зовнішнього API на кожному запиті. Worker тоді простоює й чекає на чужий сервер.
- WP-Cron, який запускають відвідувачі. Перенесіть його в системний cron, щоб завдання не забирали workers у покупців.
Часті запитання
- Чи вистачить 5 PHP workers для магазину WooCommerce?
- Для магазину з кешем сторінок і трафіком до кількох PHP-запитів за секунду в пік — так. Якщо магазин регулярно надсилає розсилки або проводить акції, коли багато людей одночасно оформлюють замовлення, розрахуйте потребу за формулою й розгляньте 10.
- Що відбувається, коли PHP workers закінчуються?
- Наступні запити чекають у черзі або отримують помилку. В Aderlo Cloud перевищення ліміту дає код 508, який видно в логах, замість непомітного сповільнення всього магазину.
- Чи PHP workers — це те саме, що ядра процесора?
- Ні. Worker — це процес, що обслуговує один запит, а ядро — обчислювальна потужність, яку workers ділять між собою. Багато workers на надто слабкому процесорі працюватимуть повільно, тому тарифи вказують обидва значення.