zabbix问题:cannot allocate shared memory of size

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix问题:cannot allocate shared memory of size相关的知识,希望对你有一定的参考价值。

 

问题状态:

zabbix_agentd不能启动,系统CentOS 5.8 i386

原因分析:

这是因为内核对share memory的限制造成的。

用到如下命令ipcs [-m|l|a],sysctl [-a|p] 

  

从上面可以看到max total shared memory和max seg size都是没有限制的。但是zabbix仍然不能allocate内存。

接下来查看目前的共享内存设置,

 

 

其中kernel.shmall代表总共能分配的共享内存,kernel.shmax代表单个段能allocate的内存(以字节为单位),这里都是0,所以肯定有问题。

然后查看/etc/sysctl.conf

 

 

得到shmall为4G,shmax更大,为64G,因为是32位系统,所以设置shmall的时候不能超过32位系统能识别的最大内存,所以最多能设置为3G多,所以这个我改为

 

 

然后执行sysctl -p生效,这时再查看如下。

 

 

的确生效了,然后启动zabbix_agentd成功,查看内存分配情况如下。

 

 

 

其实不光zabbix,很多程序出现此错误也能使用该方法解决,就是因为内核对资源的限制问题。

 

以上是关于zabbix问题:cannot allocate shared memory of size的主要内容,如果未能解决你的问题,请参考以下文章

virtual memory exhausted: Cannot allocate memory

Error: cannot allocate vector of size XX Gb

Error: cannot allocate vector of size XX Gb

-bash:fork:Cannot allocate memory 问题的处理

Kafka:服务器Cannot allocate memory

编译时:virtual memory exhausted: Cannot allocate memory