Linux
什麼是未決信號?
在查看正在執行的程序的限制時,我看到
Max pending signals 15725
- 這是什麼?
- 如何確定繁忙服務的合理價值?
一般來說,我似乎找不到解釋每個限制的頁面。有些是不言自明的(最大打開文件),有些則不那麼清楚(最大 msgqueue 大小)。
根據手冊
sigpending
頁:sigpending() 返回等待傳遞給呼叫執行緒的一組信號(即,在阻塞時已引發的信號)。
因此,這意味著等待程序退出
D
(不間斷睡眠)狀態的信號(sigterm,sigkill,sigstop,…)。通常一個程序在等待 I/O 時處於該狀態。睡眠不能被打擾。甚至 sigkill (kill -9
) 也不能,核心一直等到程序喚醒(信號等待傳遞這麼久)。對於其他不清楚的值,我會查看
limits.conf
.