TSINGSEE青犀视频开发团队开发的国标GB28181协议视频直播平台EasyGBS除了有linux版本和windows版本外,我们还编译了arm版本,在使用arm版EasyGBS测试并发播放时,发现有时Nginx内存比较高,gdb dump内存时出现提示virtual memory exhausted。
具体报错如下:/build/gdb-qBHmzF/gdb-8.1.1/gdb/utils.c:778: internal-error: virtual memory exhausted: can’t allocate 391581696 bytes.
该报错下Log显示内存耗尽,无法分配足够的空间。通过命令可以看到内存不足以分配 391581696 bytes
在Linux下可以通过扩展swap空间来解决此问题。
swap的功能:在应付物理内存不足的情况下所造成的内存扩展记录的功能。物理内存不足的时候,swap使用硬盘来暂时放置内存中的信息。
使用文件构建swap方法如下:
1.在root权限下,创建一个大小为1G的文件 /swap
2.将/swap 作为swap空间
3.使用swapon 将/swap启动
4.此时查看内存会发现swap空间可用
当swap空间设置完成后,在使用gdb dump memory 成功
在当前目录下成功生成了memory.dump文件
拓展:
TSINGSEE青犀视频开发团队开发了配合EasyGBS平台使用的国标GB28181协议推流平台EasyGBD。国标EasyGBD通过国标GB28181协议进行视频流媒体传输,在使用手机等移动设备进行执法或者户外监控的时候,能够实现户外移动监控的网页无插件直播。EasyGBD在TSINGSEE青犀视频官方网站内下载使用,如有疑问,欢迎联系咨询。