【opensips】ERROR:core:fm_malloc: not enough free shm memory

问题现象

opensips出现启动异常:

启动异常截图

ERROR:core:fm_malloc: not enough free shm memory (560 bytes left, need 720), please increase the "-m" command line parameter!

opensips的内存还有8G,为什么会报这种异常呢?

原因分析

opensips是一个多进程应用,它自身fork了很多进程出来。所以在内存方面,分为两块:

  1. 每一个进程的私有内存 private memory
  2. 所有进程共享的内存 shared memory

一般情况下,private memory很少,基本在2M左右;而大部分使用的还是shared memory,因为全局配置的路由数据,呼叫数据等等,都要在所有进程中使用,所以都在shared memory中。

那么Opensips默认的shared memory是多少呢?
从2.4版本运行数据来看是32M。 对于商用来说这个值是有点少的可怜了。 难怪opensips的开发人员都这么感慨。

查看opensips当前的shared memory

./opensipsctl fifo get_statistics shmem:
执行结果

增加shared memory

opensipsctl的帮助说明里有说明到可以通过参数调节


参数说明

你可能感兴趣的:(【opensips】ERROR:core:fm_malloc: not enough free shm memory)