9 在查看运行过程的限制时,我看到 Max pending signals 15725 这是什么? 如何确定繁忙服务的合理价值? 通常,我似乎找不到找到说明每个限制是什么的页面。有些是不言自明的(最大打开文件数),有些则很少(最大msgqueue大小)。 linux process signals ulimit — 巴特·范·海克洛姆 source 在最新的Arch Linux内核3.14.37-1-lts zsh上,我得到了sigpending 31603。为什么这些限制如此怪异(即不是2的幂)? — Bruce Ediger
6 按照手册页的sigpending: sigpending()返回等待传递给调用线程的信号集(即,被阻塞时引发的信号)。 因此,这意味着一直等待直到过程退出D(不间断睡眠)状态的信号(sigterm,sigkill,sigstop等)。通常,进程在等待I / O时处于该状态。睡眠不能被打断。甚至sigkill(kill -9)都不能,内核会等到进程唤醒(信号等待发送的时间很长)。 对于其他不清楚的价值观,我会采取在看看手册页的limits.conf。 — 混沌 source 这对手册页sigqueue和setrlimit你真的应该看。 — JdeBP
0 流程限制由setrlimit(2)控制 因此,您可以查看其联机帮助页: RLIMIT_SIGPENDING(从Linux 2.6.8开始) 指定可以排队等待呼叫过程的真实用户标识的信号数量的限制。标准和实时信号均被计数,以检查此限制。但是,此限制仅对sigqueue(3)强制;始终可以使用kill(2)对尚未排队到进程中的任何信号的一个实例进行排队。 通常,查看syscall的联机帮助页时,可以获得最详细的信息。C是UNIX / Linux的母语。 — 166 source
sigpending 31603
。为什么这些限制如此怪异(即不是2的幂)?