http: keep-alive поддерживает открытые ресурсы php или освобождает все ресурсы? - PullRequest
5 голосов
/ 14 февраля 2011

Я использую http keep-alive на сервере apache,
Допустим, я прошу его держать соединения открытыми до 2 минут ...
Теперь, если соединение создано и бездействует в течение минуты,Будут ли освобождены ресурсы, хранящиеся в php,
, такие как подключения mysql, файловые дескрипторы и т. д., или они тоже выживут?

Ответы [ 2 ]

3 голосов
/ 16 февраля 2011

Подтверждено.Keep-Alive - это механизм предотвращения дорогостоящих переговоров по TCP-соединению.Ваш PHP процесс / поток запускается как обычно и должен распределять все ресурсы как обычно.

Что касается ситуации с высокой нагрузкой, возможно, было бы целесообразно даже поддерживать период поддержания активности не слишком высоким: все запросы на подключение конкурируют за свободные слоты подключения вашего сервера.Если все слоты используются соединениями keep-alive, другие пользователи могут не подключиться.

Но, как обычно, оптимальное количество слотов и хороший период активности зависят от конкретной ситуации загрузки.

1 голос
/ 15 февраля 2011

нет, http keep-alive сохраняет ресурсы tcp-соединения. php и mysql даже не узнают о том, что соединение открыто, когда вы сделаете следующий запрос, это будет быстро, потому что время, потраченное на разрешение ip-адреса и открытие нового tcp-соединения, будет сохранено.

...