php-fpm: допоможіть зрозуміти start_servers, min_spare_servers, max_spare_servers


10

Я намагаюся налаштувати мою установку PHP-FPM для мого сервера, і у мене є проблеми , з'ясувати , що робити з pm.start_servers, pm.min_spare_serversі pm.max_spare_serversзмінними. я використовуюpm = dynamic

pm.max_childrenідеально зрозуміло. Кожен дочірній процес одночасно обслуговує 1 веб-клієнта. Добре. Що таке "сервер"? Зрозуміло, виходячи з конфігурації за замовчуванням, яку я маю, 1 сервер може обслуговувати більше 1 дитини. Яка верхня межа? Що я повинен використовувати як правило для # дітей / сервера? Або це взагалі пов’язано? На якомусь форумі хтось стверджував, що на # серверах має бути 2 х # ядер процесора, але я бачив рекомендовані конфігурації, де число було набагато вище, 40-50.

Ні документація PHP, ні багато статей про "налаштування php-fpm" там не були корисними.

Відповіді:


14

В основному кількість процесів, які в будь-який час будуть працювати php-fpm, дуже настроюється, коли ви налаштовуєте так, dynamicяк ви робите. Якщо встановлено static, ВЖЕ ВІДБУДАЄТЬСЯ багато запущених процесів. Як правило, ви налаштовуєте його на динамічну економію ресурсів. Кожен дочірній процес може обробити один запит. Верхня межа залежить від того, наскільки вашою є програма php та скільки трафіку ви отримуєте. Ви також повинні обчислити середнє споживання пам’яті кожної дитини та переконайтесь, що НІКОЛИ не дозволяєте кількості дітей перевищувати кількість оперативної пам’яті, встановленої на вашому сервері, або ви почнете мінятись або навіть починати процеси вбивства ядра.

; Choose how the process manager will control the number of child processes.
; Possible Values:
;   static  - a fixed number (pm.max_children) of child processes;
;   dynamic - the number of child processes are set dynamically based on the
;             following directives:
;             pm.max_children      - the maximum number of children that can
;                                    be alive at the same time.
;             pm.start_servers     - the number of children created on startup.
;             pm.min_spare_servers - the minimum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is less than this
;                                    number then some children will be created.
;             pm.max_spare_servers - the maximum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is greater than this
;                                    number then some children will be killed.
; Note: This value is mandatory.

Під час налаштування цих параметрів врахуйте наступне:

  • Як довго триває ваш середній запит?
  • Яка максимальна кількість одночасних відвідувачів на сайтах?
  • Скільки пам'яті в середньому споживає кожна дитина?

3
Дуже корисно, дякую за розуміння. Також корисно для розрахунку використовуйте це, ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'щоб побачити, скільки пам'яті має кожен працівник. взято з community.webcore.cloud/tutorials/…
Matt The Ninja
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.