Налаштування конфігурації PHP для великого магазину на Opencart

  • Автор теми Neron
  • Дата створення
Neron

Neron

Пользователи
Реєстрація
12.04.2014
Повідомлення
374
Репутація
24
Вік
32
Всім привіт! Скажіть будь-ласка, який режим роботи PHP-FPM варто вибрати, для швидкої роботи магазину на Opencart з 40000 товарів при тому, що відвідуваність не велика. Є варіанти: static, on-demand, dynamic.
Які параметри прописати в: max_children, start_servers, min_spare_servers, max_spare_servers?

Віртуальний сервер, має 16 ГБ оперативної пам'яті, але більшість з неї, використовує MySQL.

Що порекомендуєте в моєму випадку?
 
Привіт!

По-перше, рекомендується використовувати PHP-FPM 7.x, тому що це найшвидша версія PHP для веб-сайтів на базі Opencart.

По-друге, щодо режиму роботи PHP-FPM, в вашому випадку я би рекомендував використовувати "по запиту" (on demand). Він використовує найменше ресурсів, коли сайт не отримує багато відвідувачів.

Часто для великого магазину Opencart приймають такі параметри для PHP-FPM:

  • pm.max_children: Враховуючи, що вам потрібна пам'ять для MySQL, я б рекомендував встановити цей параметр від 50 до 70. Це повинно бути достатньо для підтримки вашої поточної нагрузки. Звісно, ви завжди можете підлаштувати це значення в міру зростання відвідуваності.
  • pm.start_servers: Значення 5-20 повинно бути достатнім.
  • pm.min_spare_servers: Встановіть це значення на 1, щоб уникнути непотрібного використання ресурсів.
  • pm.max_spare_servers: Я би встановив цей параметр в 5, це зазвичай достатньо для оптимізації продуктивності.
Також, не забудьте налаштувати pm.max_requests, для того, щоб уникнути витоку пам'яті. Його можна встановити у діапазоні між 500-1000.

Наприклад, ваш конфіг файл PHP-FPM може виглядати так:

Код:
[www]
user = www-data
group = www-data
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = ondemand
pm.max_children = 70
pm.start_servers = 20
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 500

Ці налаштування повинні дати вам хороший старт. Пам'ятайте, що завжди потрібно моніторити використання ресурсів та адаптувати налаштування відповідно до потреб вашого сайту.
 
Привіт!

По-перше, рекомендується використовувати PHP-FPM 7.x, тому що це найшвидша версія PHP для веб-сайтів на базі Opencart.

По-друге, щодо режиму роботи PHP-FPM, в вашому випадку я би рекомендував використовувати "по запиту" (on demand). Він використовує найменше ресурсів, коли сайт не отримує багато відвідувачів.

Часто для великого магазину Opencart приймають такі параметри для PHP-FPM:

- `pm.max_children`: Враховуючи, що вам потрібна пам'ять для MySQL, я б рекомендував встановити цей параметр від 50 до 70. Це повинно бути достатньо для підтримки вашої поточної нагрузки. Звісно, ви завжди можете підлаштувати це значення в міру зростання відвідуваності.

- `pm.start_servers`: Значення 5-20 повинно бути достатнім.

- `pm.min_spare_servers`: Встановіть це значення на 1, щоб уникнути непотрібного використання ресурсів.

- `pm.max_spare_servers`: Я би встановив цей параметр в 5, це зазвичай достатньо для оптимізації продуктивності.

Також, не забудьте налаштувати `pm.max_requests`, для того, щоб уникнути витоку пам'яті. Його можна встановити у діапазоні між 500-1000.

Наприклад, ваш конфіг файл PHP-FPM може виглядати так:

```
[www]
user = www-data
group = www-data
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = ondemand
pm.max_children = 70
pm.start_servers = 20
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 500
```
Ці налаштування повинні дати вам хороший старт. Пам'ятайте, що завжди потрібно моніторити використання ресурсів та адаптувати налаштування відповідно до потреб вашого сайту.
Якщо збільшити ці показники, то швидкість відповіді сайту і швидкість завантаження сторінок не збільшиться?
 
Якщо збільшити ці показники, то швидкість відповіді сайту і швидкість завантаження сторінок не збільшиться?
Збільшення цих параметрів може збільшити швидкість обробки запитів і завантаження сторінок, але лише до певної міри. Ці значення визначають кількість дочірніх процесів PHP-FPM, які можуть бути використані для обробки запитів.

Якщо ви збільшите ці значення, більше процесів буде доступно для обробки запитів, але це також збільшить використання системних ресурсів. Якщо ви перевищите межу, це може призвести до того, що ви повністю використаєте доступну оперативну пам'ять, що призведе до істотного сповільнення системи або навіть до повної її нероботи.

Також важливо розуміти, що виконання PHP-скрипту - це лише частина того, що впливає на загальний час відгуку сервера. Інші фактори включають час відклику мережі, час виконання MySQL запитів, час обробки веб-сервером (наприклад, Apache або Nginx) запитів клієнта і так далі.

Тому, ви можете експериментувати з цими значеннями, але важливо робити це обережно, моніторити використання ресурсів сервера і тести швидкость відгуку вашого сайту, щоб знайти найкращий баланс.
 
Збільшення цих параметрів може збільшити швидкість обробки запитів і завантаження сторінок, але лише до певної міри. Ці значення визначають кількість дочірніх процесів PHP-FPM, які можуть бути використані для обробки запитів.

Якщо ви збільшите ці значення, більше процесів буде доступно для обробки запитів, але це також збільшить використання системних ресурсів. Якщо ви перевищите межу, це може призвести до того, що ви повністю використаєте доступну оперативну пам'ять, що призведе до істотного сповільнення системи або навіть до повної її нероботи.

Також важливо розуміти, що виконання PHP-скрипту - це лише частина того, що впливає на загальний час відгуку сервера. Інші фактори включають час відклику мережі, час виконання MySQL запитів, час обробки веб-сервером (наприклад, Apache або Nginx) запитів клієнта і так далі.

Тому, ви можете експериментувати з цими значеннями, але важливо робити це обережно, моніторити використання ресурсів сервера і тести швидкость відгуку вашого сайту, щоб знайти найкращий баланс.
Поясни детально чим відрізняються режими: dynamic, on-demand, static і при якому режимі будуть найшвидше завантажуватися сторінки?
 
Поясни детально чим відрізняються режими: dynamic, on-demand, static і при якому режимі будуть найшвидше завантажуватися сторінки?
PHP-FPM дозволяє вибрати один з трьох режимів управління процесами: static, dynamic та on-demand. Розглянемо, чим вони відрізняються:
  1. Static - В цьому режимі кількість дочірніх процесів PHP-FPM статична та задається параметром `pm.max_children`. Цей режим добре працює для високонавантажених систем, де відповідний рівень завантаження є стабільним і передбачуваним.
  2. Dynamic - В цьому режимі кількість дочірніх процесів може змінюватися в межах вказаних у `pm.max_children`, `pm.start_servers`, `pm.min_spare_servers` та `pm.max_spare_servers`. Цей режим найбільш гнучкий та ефективний для більшості ситуацій.
  3. On-demand - В цьому режимі процеси створюються лише при необхідності (тобто коли приходить запит). Коли процес закінчений, він не видаляється, а залишається живим протягом певного часу (як вказано в `pm.process_idle_timeout`). Цей режим найбільш ефективний для сайтів з низьким або нерівномірним трафіком, оскільки він використовує менше ресурсів.
Коли ми говоримо про швидкість завантаження сторінок, немає однозначної відповіді, який режим краще. Все залежить від вашого конкретного випадку: від того, скільки трафіку має ваш сайт, від характеру його використання та від ресурсів, доступних на сервері.

Якщо ваш веб-сайт регулярно має велику кількість користувачів, то `static` або `dynamic` режими можуть забезпечити кращу продуктивність, тому що процеси вже запущено та готово обробляти запити. Проте, якщо трафік низький або нестабільний, `on-demand` режим може бути ефективнішим, оскільки він використовує менше ресурсів при відсутності запитів.
 

Схожі теми

Назад
Зверху