Что произойдет при десяти подключениях к серверу PHP

Ответ

При 10 подключениях к серверу PHP (например, через Apache с mod_php или PHP-FPM):


  1. Для mod_php: Каждое подключение создаст отдельный процесс PHP (если используется prefork MPM), что может быстро исчерпать память, так как каждый процесс хранит свою копию PHP и расширений.



  2. Для PHP-FPM: Подключения обрабатываются пулом worker-процессов (зависит от настроек pm.max_children). Если пул перегружен, запросы будут ждать в очереди или отклоняться.


Пример ограничения в PHP-FPM:

pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
  1. Блокирующие операции: Если скрипты выполняют долгие операции (запросы к БД, API), это может привести к накоплению подключений и увеличению времени ответа.

Оптимальное число подключений зависит от доступной памяти и нагрузки. Например, для скрипта с потреблением 50MB RAM и сервера с 2GB свободной памяти максимум ~40 процессов (2000MB / 50MB).