Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP CLI进程的最大数目_Php - Fatal编程技术网

PHP CLI进程的最大数目

PHP CLI进程的最大数目,php,Php,我有一个PHP脚本,当某些事件发生时,如电子邮件到达时,外部进程会调用它。因此,如果在一段时间内,触发事件发生多次,那么脚本也会被调用多次 脚本并发运行的最大实例数限制是多少?我将如何放宽限制? 我读过关于Apache/PHP上下文中最大并发连接数的各种信息,但我认为CLI上下文的工作方式不同 我的环境是Ubuntu 16.04LTS/PHP7.0 谢谢 在Linux上,最大进程数由几个因素决定: cat /proc/sys/kernel/pid_max 这将显示最大PID值+1(即最大PID

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

脚本并发运行的最大实例数限制是多少?我将如何放宽限制?

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

我的环境是Ubuntu 16.04LTS/PHP7.0


谢谢

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

cat /proc/sys/kernel/pid_max
这将显示最大PID值+1(即最大PID值比该值小一个)。当你点击这个值时,内核会自动旋转。请注意,前300个是保留的。默认值为32768,因此PID的最大数量为32767-300=32467

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

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

这些值可以调整(特别是在64位系统上),但它们不太可能是您的实际上限。在大多数情况下,进程的最大数量取决于您的硬件资源。我怀疑,如果您尝试运行32000个PHPCLI实例,RAM的使用时间将远远早于可用进程空间的使用时间


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

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

cat /proc/sys/kernel/pid_max
这将显示最大PID值+1(即最大PID值比该值小一个)。当你点击这个值时,内核会自动旋转。请注意,前300个是保留的。默认值为32768,因此PID的最大数量为32767-300=32467

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

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

这些值可以调整(特别是在64位系统上),但它们不太可能是您的实际上限。在大多数情况下,进程的最大数量取决于您的硬件资源。我怀疑,如果您尝试运行32000个PHPCLI实例,RAM的使用时间将远远早于可用进程空间的使用时间


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

这一切都取决于您拥有多少ram和cpu。这一切都取决于您拥有多少ram和cpu,以防他想要增加pid值sysctl-w kernel.pid_max=xxxxxxx,以防他想要增加pid值sysctl-w kernel.pid_max=xxxxxxx