怎么解决Nginx执行PHP出现的shmget() failed: Invalid argument

最近两天发现,以前可以顺利执行的PHP采集的计划任务出现如下错误。

shmget() failed: Invalid argument
Failed to start up concurrent users module!

所有的程序都 跑不起来。经过查找原因。发现是linux系统参数设置问题,从而导致采集程序执行不了。用命令行查看:

[root@centosggk ~]# sysctl -a | grep shmm
kernel.shmmni = 4096
kernel.shmmax = 0

修改操作:

[root@centosggk ~]# vi /etc/sysctl.conf
kernel.shmmax =1523241824
kernel.shmall =573741
[root@centosggk ~]# sysctl -p
[root@centosggk ~]# sysctl -a | grep shm
kernel.shmmax = 1523241824
kernel.shmmni = 4096

修改后的结果是:

kernel.shmmax 数值说明:
单位:字节。一般建议使用物理内存的一半
以4G内存为例:4096/2*1024*1024=2147483648

kernel.shmall 数值说明:
单位:页。1页=4k,设置数值则为物理内存大小
以4G内存为例:4096*1024*1024/4000=1073742
注:以上两项数值如果填写大于本身物理内存则会不生效。

可参考的文章网址:
http://www.poluoluo.com/server/201306/215354.html
http://www.ablanxue.com/prone_8500_1.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注