2011-02-14 15 views
5

estoy usando mantenimiento de conexiones HTTP en un servidor Apache,
digamos que lo pido para mantener las conexiones abiertas hasta 2 minutos ...
Ahora, si se crea la conexión y inactivo durante un minuto, ¿los recursos celebrado por php,
como las conexiones de mysql, manejadores de archivos, etc., serán liberados o van a sobrevivir también?¿mantiene http: keep-alive abierto los recursos de php o libera todos los recursos?

+0

La cosa es que no pudo identificar sus recursos de espera en una nueva solicitud. Supongo que solo le ordena a Apache que no abandone el proceso que se ha iniciado para manejar sus solicitudes. Pero como en HTTP 1.1 esta opción de mantener vivo no se usa más. B/c no se inician procesos separados para tratar diferentes solicitudes. Interesante pregunta. Espero que alguien pueda darle una respuesta definitiva. Porque una búsqueda rápida no reveló respuestas "simples". – Raffael

+0

no es que ya no esté en uso, está predeterminado ... Así que hay una opción en el archivo httpd.conf que puede habilitarlo y decirle cuánto tiempo para mantenerlo abierto ... Y sí, espero que alguien me da una respuesta real :) – Shrinath

Respuesta

3

Confirmado. Keep-Alive es un mecanismo para evitar costosas negociaciones de conexión TCP. Su proceso/subproceso PHP comienza normalmente y necesita asignar todos los recursos como de costumbre.

Con respecto a una situación de carga elevada, puede ser conveniente mantener incluso el período de mantenimiento de vida no demasiado alto: todas las solicitudes de conexión compiten por las ranuras de conexión gratuitas de su servidor. Si todas las máquinas tragamonedas están en uso mediante conexiones keep-alive, es posible que otros usuarios no se conecten.

Pero, como de costumbre, la cantidad óptima de ranuras y un buen período de mantenimiento de la vida útil depende de su situación de carga específica.

+0

Yo :) Confirmado :) Hice algunas pruebas al día siguiente también ... Observé lo mismo ... – Shrinath

+0

¡Gracias por la confirmación confirmada! ¿Podría por favor una respuesta como correcta? – SteAp

1

no, http keep-alive guarde los recursos de la conexión tcp. php y mysql ni siquiera se darán cuenta de que la conexión está abierta, cuando harás la siguiente solicitud será rápido porque el tiempo dedicado a resolver la dirección IP y la apertura de la nueva conexión tcp se guardará, todo esto permanecerá en apache.

Cuestiones relacionadas