参考地址:https://blog.csdn.net/smcnjyddx0623/article/details/52294714

 

shmget函数申请共享内存,返回错误22

原因:申请的共享内存空间超过了系统限制

cat /proc/sys/kernel/shmmax

通过这个,可以查看共享内存单个段允许使用的大小

如果这个值比较小,就需要修改这个上限

 

如何修改共享内存上限值:

建议将共享内存的上限值设为物理内存的一半,把共享内存大小设置为16GB。

临时修改(重启失效):
sysctl -w kernel.shmmax=17179869184

永久修改:
root权限vi /etc/sysctl.conf系统配置文件:
kernel.shmmax = 17179869184
执行sysctl -p使修改的配置生效

 

发表评论