最多PHP CLI进程数

时间:2017-09-18 01:51:49

标签: php

我有一个PHP脚本,当某些事件发生时由外部进程调用,例如当电子邮件到达时。因此,如果在一段时间内,触发事件多次发生,脚本也会被多次调用。

同时运行的脚本最大实例数的限制是什么?我该如何放松限制?

我已经阅读了有关Apache / PHP上下文中最大并发连接数的各种信息,但我认为CLI上下文的工作方式不同。

我的环境是Ubuntu 16.04LTS / PHP 7.0。

谢谢!

1 个答案:

答案 0 :(得分:1)

在Linux上,最大进程数由几个因素决定:

cat /proc/sys/kernel/pid_max

这将显示最大PID值+ 1(即最高值PID比该值小1)。当你达到这个值时,内核会回绕。请注意,前300个是保留的。默认值为32768,因此PID的最大数量为32767 - 300 = 32467。

这将显示您的用户帐户可以运行的最大进程数:

ulimit -u

因此,如果您以单个用户身份运行所有流程,并且此数字小于pid_max值,那么这可能是您的上限。

可以调整这些值(特别是在64位系统上),但它们不太可能是您的真实世界上限。在大多数情况下,最大进程数将取决于您的硬件资源。我怀疑如果你试图在32,000个PHP CLI实例附近运行,那么你的RAM早就会用完你的可用处理空间。

最大进程数取决于脚本的功能;特别是它使用了多少CPU和RAM。最好的办法是启动一个脚本,该脚本在很长一段时间内运行X个CLI进程,然后观察系统上的负载。从10开始..如果负载可以忽略不计,则将其提高到100.然后继续该过程直到您有明显的负载。找出你的最大负载是什么,然后进行匹配以找出你的最大进程数。