Lorsque je regarde les limites d'un processus en cours, je vois
Max pending signals 15725
- Qu'est-ce que c'est?
- Comment puis-je déterminer une valeur raisonnable pour un service occupé?
En général, je n'arrive pas à trouver une page qui explique quelle est chaque limite. Certains sont assez explicites (fichiers ouverts max), d'autres moins (taille max msgqueue).
sigpending 31603
. Pourquoi ces limites sont-elles des nombres si étranges (c'est-à-dire pas une puissance de 2)?Réponses:
Selon la page de manuel de
sigpending
:Il s'agit donc des signaux (sigterm, sigkill, sigstop, ...) qui attendent que le processus sorte de l'état
D
(sommeil ininterrompu). Habituellement, un processus est dans cet état lorsqu'il attend des E / S. Ce sommeil ne peut pas être interrompu. Même sigkill (kill -9
) ne peut pas et le noyau attend que le processus se réveille (le signal est en attente de livraison si longtemps).Pour les autres valeurs peu claires, je jetterais un œil dans la page de manuel de
limits.conf
.la source
sigqueue
etsetrlimit
que vous devriez vraiment examiner.Les limites de processus sont contrôlées par setrlimit (2)
Vous pouvez donc consulter sa page de manuel:
En règle générale, vous pouvez obtenir les informations les plus détaillées lorsque vous consultez les pages de manuel des appels système. C est la langue maternelle d'UNIX / Linux.
la source