Cuando miro los límites de un proceso en ejecución, veo
Max pending signals 15725
- ¿Que es esto?
- ¿Cómo puedo determinar un valor razonable para un servicio ocupado?
En general, parece que no puedo encontrar una página que explique cada límite. Algunos se explican por sí mismos (archivos abiertos máximos), otros no (tamaño máximo de msgqueue).
sigpending 31603
. ¿Por qué estos límites son números tan extraños (es decir, no una potencia de 2)?Respuestas:
De acuerdo con la página del manual de
sigpending
:Entonces, se entiende las señales (sigterm, sigkill, sigstop, ...) que están esperando hasta que el proceso salga del estado
D
(suspensión ininterrumpida). Por lo general, un proceso está en ese estado cuando está esperando E / S. Ese sueño no puede ser interrumpido. Incluso sigkill (kill -9
) no puede y el kernel espera hasta que el proceso se activa (la señal está pendiente de entrega por tanto tiempo).Para los otros valores poco claros, echaría un vistazo en la página del manual de
limits.conf
.fuente
sigqueue
ysetrlimit
que realmente debería estar mirando.Los límites del proceso son controlados por setrlimit (2)
Para que pueda ver su página de manual:
En general, puede obtener la información más detallada cuando consulta las páginas de manual de las llamadas al sistema. C es la lengua materna de UNIX / Linux.
fuente