syn*_*gma 17 process process-management
当我查看进程表 ( ps -a
)中 PID 的编号时,我找不到任何模式,因为 PID 不是后续数字,有时这些数字之间存在很大的“差距”。是不是因为可能有一些进程运行时间很短,他们保留了一些PID?是否有一些范围,之后进程编号会重置?
我使用的是 Mac OS X,但我想答案应该适用于一般的 UNIX。
Joh*_*han 18
是的。
许多过程都是短暂的。他们得到一个PID,运行,完成,然后PID从进程表中消失。
进程有时只存在几分之一秒!
通常,当程序启动时,它们会运行大量命令,作为检查系统和初始化环境的一部分。
最大 PID 数取决于系统,有时是可配置的。基本上,如果您知道您将拥有大量进程,那么您可能需要增加数量,但在新操作系统上,我相信最大数量通常足以满足大多数工作负载。
PID 是进程表中的条目,您拥有的越多进程表占用的内存就越多。
看看这个相关的问题:https : //serverfault.com/questions/279178/what-is-the-range-of-a-pid-on-linux-and-solaris
另请注意,与此相关的是“每个用户的最大进程数”,这是一种防止恶意用户故意创建许多进程来占用整个进程表的措施。
还可以配置一些现代内核以将随机 PID 分配给新进程以提高安全性。至少 Linux 和 FreeBSD 可以通过 sysctl 设置来完成,而 OpenBSD 总是这样做。在这些情况下,您可以少说一些编号模式。
归档时间: |
|
查看次数: |
1078 次 |
最近记录: |