You need to enable JavaScript to run this app.
导航
Linux系统的ECS实例内存使用率较高问题的排查及解决方案
最近更新时间:2024.10.18 17:12:43首次发布时间:2024.04.03 15:47:01

本文主要介绍如何使用free命令与Atop工具,排查和解决Linux实例在使用过程中,出现的内存使用率较高(使用率超过80%)问题。

操作步骤

  1. 登录目标实例,操作详情可参考登录Linux实例

  2. 执行如下命令,查询实时内存占用情况。

    free -g
    

    回显示例

    说明

    • 内存使用率 = (total-free) /total,当内存使用率≥80%时,定义为内存使用率过高。
    • total:可供系统使用的内存大小,即物理内存减去预留位和内核使用的内存,本列与Mem行交集的值即为总内存大小。
    • free:当前系统完全没有使用的内存,本列与Mem行交集的值即为可用内存大小。
  3. 使用Atop工具,查看内存占用排序情况。

    1. 请确保在目标实例中已经安装Atop工具。若未安装,请在目标实例中执行如下命令完成安装操作。
      • CentOS

        sudo yum -y install atop
        
      • Ubuntu、Debian

        sudo apt update 
        sudo apt -y install atop
        
    2. 执行如下命令,查看内存占用实时排序情况。
      atop -m
      
      回显示例
    3. 请根据VSIZE(虚拟内存)、RSIZE(实际内存)与CMD(进程名),判断内存占用高的进程是否符合预期,并获取目标进程的PID(进程标识符)。
      • 符合预期
        请优化该进程对应的程序处理逻辑,减少内存占用。您也可以升级您的实例配置,避免由于实例规格较低,影响程序正常运行,操作详情可查看修改实例规格
      • 不符合预期
        您可以执行如下命令,手动终止异常进程。

        注意

        • 终止进程后,可能导致目标进程的数据丢失。
        • 终止操作系统关键进程可能导致系统重启,请谨慎操作。
        1. 在Atop监控页面中,按k键进入终止进程模式。
        2. 输入目标进程PID,按回车键确认。
        3. 输入9,按回车键确认,强制关闭进程。