【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的帮助说明里有说明到可以通过参数调节


参数说明
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 最近做项目需求的时候,需要从共享内存读取数据,因为第一次接触共享内存(Shared Memory),特地去做...
    Xcxing阅读 6,177评论 0 0
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_阅读 5,883评论 0 3
  • 版权声明:本文为 cdeveloper 原创文章,可以随意转载,但必须在明确位置注明出处! 共享内存 Shared...
    登龙zZ阅读 11,840评论 0 6
  • ramdisk Linux内核2.0/2.2就已经支持,为了能够使用Ramdisk,我们在编译内核时须将block...
    gbmaotai阅读 7,871评论 0 1
  • meminfo内存结构 MemTotal 当我们在linux上查看内存状况的时候发现上面的打印一般的是 ** Me...
    zjfclimin阅读 13,112评论 0 4

友情链接更多精彩内容