首页 > 代码库 > nginx或者php-fpm 启动时报错 “shmget() failed: Invalid argument”
nginx或者php-fpm 启动时报错 “shmget() failed: Invalid argument”
博客:http://lijinhuan.blog.51cto.com/
微博:http://weibo.com/lijinhuanexperience
代码:https://github.com/lijinhuan
报错详情:
shmget() failed: Invalid argument
Failed to start up concurrent users module!
原因:
kernel.shmmax设置未生效
解决方法:
[root@localhost ~]# sysctl -a | grep shmm
kernel.shmmni = 4096
kernel.shmmax = 0
[root@localhost ~]# vi /etc/sysctl.conf
kernel.shmmax = 2147483648
kernel.shmall = 1073742
[root@localhost ~]# sysctl -p
[root@localhost ~]# sysctl -a | grep shm
vm.hugetlb_shm_group = 0
kernel.shmmni = 4096
kernel.shmall = 1073742
kernel.shmmax = 2147483648
kernel.shmmax 数值说明:
单位:字节。一般建议使用物理内存的一半
以4G内存为例:4096/2*1024*1024=2147483648
kernel.shmall 数值说明:
单位:页。1页=4k,设置数值则为物理内存大小
以4G内存为例:4096*1024*1024/4000=1073742
注:以上两项数值如果填写大于本身物理内存则会不生效。
sysctl -p 生效
如果不行,可以重启一下服务器
nginx或者php-fpm 启动时报错 “shmget() failed: Invalid argument”