运行程序超内存导致设备异常挂死,设备能ping通,但SSH无法远程连接
问题描述
运行程序超内存导致设备异常挂死,设备能ping通,但SSH无法远程连接。
原因分析
通过串口连接后,实时运行大内存业务程序,设备异常挂死前日志循环打印“OOM type”,分析定位为内存不足,运行业务超系统设置的内存限额。
解决方法
- 参考SD卡制作系统镜像制卡。
- 设置OOM内存管理机制。
配置方法重启后失效,用户可以根据业务诉求进行持久化配置。
- 执行如下命令,启用enable_oom_killer。
echo 1 > /proc/sys/vm/enable_oom_killer
- 执行如下命令,启用memory cgroup的OOM机制。
echo 0 > /sys/fs/cgroup/memory/usermemory/memory.oom_control
- 执行如下命令,查看OOM内存设置状态。
cat /proc/sys/vm/enable_oom_killer
1
cat /sys/fs/cgroup/memory/usermemory/memory.oom_control
oom_kill_disable 0 under_oom 0 oom_kill 0 oom_kill_local 0
- 执行如下命令,启用enable_oom_killer。
父主题: FAQ