国标GB28181协议视频智能分析告警平台EasyGBS在Linux下virtual memory exhausted报错问题解决
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青犀视频官方网站内下载使用,如有疑问,欢迎联系咨询。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结