wrapper.cpu.timeout

Compatibilidad :2.2.8
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad
Plataformas :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

ADVERTENCIA

NO modifique ninguno de estos parámetros a menos que haya leído la descripción de esta propiedad. Una configuración incorrecta puede hacer que el Wrapper no funcione como esperado.

NOTA

Esta propiedad se ignora a menos que wrapper.use_system_time=TRUE.

Cuando wrapper.use_system_time=FALSE, se pueden registrar notificaciones similares sobre cambios de hora del sistema y retrasos debido a una gran carga usando las propiedades wrapper.timer_fast_threshold y wrapper.timer_slow_threshold properties.

Esta propiedad establece el número de segundos sin CPU antes de que la JVM emita una advertencia y amplíe los tiempos de espera. Para que esta propiedad tenga algún efecto, debe tener un valor menor que las otras propiedades de tiempos de espera (wrapper.startup.timeout, wrapper.ping.timeout, y wrapper.shutdown.timeout). Establecer el valor de esta propiedad en "0" (cero) significa que el tiempo de espera nunca se extenderá.

El valor predeterminado es "10 segundos".

Ejemplo: (10 segundos)
wrapper.cpu.timeout=10

Si el Wrapper detecta que se ha negado CPU por un período de tiempo prolongado, puede que vea mensajes como el siguiente, desde el Wrapper, la JVM o ambos.

Ejemplo de Registro:
INFO   | wrapper  | Wrapper Process has not received any CPU time for 27 seconds.
                    Extending timeouts.
INFO   | jvm 1    | JVM Process has not received any CPU time for 27 seconds.
                    Extending timeouts.

Estos mensajes son advertencias de que, en este caso, se denegó el acceso a la CPU tanto al Wrapper como a su proceso JVM durante un período de 27 segundos. Dependiendo del estado actual del Wrapper, el tiempo de espera de inicio, ping o apagado se extiende para evitar un tiempo de espera FALSO causado por la falta de poder de procesamiento.

Hay dos casos en los que se puede denegar el acceso a la CPU ya sea para el Wrapper o a su JVM controlada durante un período de tiempo prolongado. Cualquiera de los dos puede hacer que el Wrapper piense que la JVM se bloqueó, lo que provocaria que se reiniciara o apagara porque uno o más de los tiempos de espera han expirarado.

La primera forma en que esto puede suceder es cuando el Wrapper compite por los recursos del sistema con otro proceso que tiene la costumbre de consumir el 100 % de la CPU durante largos períodos de tiempo sin ceder el paso a otros procesos. La mayoría de los sistemas operativos modernos son bastante buenos para administrar multitareas, pero aún hay casos en los que puede fallar. Un ejemplo de esto en Windows es cuando la máquina tiene muy poca memoria, lo que genera muchos cambios de disco. Si la memoria total no es suficientemente, todo el sistema puede congelarse durante un minuto antes de que las aplicaciones vuelvan a recibir ciclos de CPU.

En la mayoría de los casos, cuando tiene problemas con los tiempos de espera de la CPU, realmente debería buscar una manera de resolver el problema de que el Wrapper no obtiene ninguna CPU en lugar de extender los tiempos de espera. Si la aplicación ejecutada por el Wrapper no recibe ninguna CPU, no podrá atender de manera confiable las solicitudes de los clientes.

La segunda forma es si el sistema se suspende y luego se reanuda. Esto es algo común que ocurre en las computadoras portátiles. Cuando el sistema vuelve a funcionar, parece que de repente se ha adelantado varias horas.

Por defecto, los mensajes de advertencia se mostrarán después de 10 segundos, que en realidad es bastante tiempo. La activación del tiempo de espera de la CPU no tendrá ningún efecto adverso en una aplicación que no sea el mensaje que se muestra en los registros. Para evitar que se registre este mensaje, se puede establecer el tiempo de espera en un valor mayor o deshabilitarse por completo.

ADVERTENCIA

Aunque sea posible, tenga en cuenta que establecer el valor de esta propiedad en "0" (cero) (= deshabilitar el tiempo de espera) o en un valor mayor que otro tiempo de espera puede provocar que ese tiempo de espera se active falsamente en casos de carga pesada. Esto puede hacer que la JVM se reinicie cuando no es realmente necesario reiniciar.

Referencia: Timeout