今天小编遇到一个问题,当调用了system方法,并且执行了shell脚本,开始的时候,一切都非常正常,但是当程序运行后一段时间,出现了显示unable to fork的报错,这个是什么原因呢,后来小编排查了下,主要是因为达到用户的进程上限了,下面小编给大家介绍下解决方式。
限制linux用户的进程数
修改以下文件
vi /etc/security/limits.conf vpsee hard nproc 32 @student hard nproc 32 @faculty hard nproc 64
ulimit 不带 -H 和 -S 参数的时候同时设置 Hard 和 Soft
ulimit -u 65535 ulimit -u 65534 ulimit -u 65535 -bash: ulimit: max user processes: cannot modify limit: Operation not permitted ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 30493 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 65534 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
查看各系统用户的进程数
ps h -Led -o user | sort | uniq -c | sort -n 2 nobody 3 redis 34 www 64 mysql 174 root
确定某用户的进程数的分布情况
ps -o nlwp,pid,lwp,args -u username | sort -n
问题原因分析:
问题原因
system调用会fork新的进程,因为每个用户有最大进程数限制,简单的说就是达到用户的进程上限了
标签:
php,报错
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“php中unable to fork报错简单解决方法”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。