下载
中文
注册

运行程序超内存导致设备异常挂死,设备能ping通,但SSH无法远程连接

问题描述

运行程序超内存导致设备异常挂死,设备能ping通,但SSH无法远程连接。

原因分析

通过串口连接后,实时运行大内存业务程序,设备异常挂死前日志循环打印“OOM type”,分析定位为内存不足,运行业务超系统设置的内存限额。

解决方法

  1. 参考SD卡制作系统镜像制卡。
  2. 设置OOM内存管理机制。

    配置方法重启后失效,用户可以根据业务诉求进行持久化配置。

    1. 执行如下命令,启用enable_oom_killer。

      1表示启用,0表示禁用。

      echo 1 > /proc/sys/vm/enable_oom_killer

    2. 执行如下命令,启用memory cgroup的OOM机制。

      0表示启用,1表示禁用。

      echo 0 > /sys/fs/cgroup/memory/usermemory/memory.oom_control

    3. 执行如下命令,查看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