文档中心 云服务器 故障处理 实例相关故障 无法登录云服务器 Linux 系统 CPU 与内存占用率高导致无法登录

Linux 系统 CPU 与内存占用率高导致无法登录

最近更新时间:2019-04-25 17:45:31

操作场景

本文档介绍 Linux 云服务器因 CPU 与内存占用率高导致无法登录等问题的排查方法和解决方案。

操作步骤

登录与查看系统负载

  1. 登录云服务器。
    • 通过第三方软件远程登录 Linux 云服务器。

      注意:

      Linux 云服务器处于 CPU 高负荷状态时,可能出现无法登录状态。

    • 通过 VNC 方式登录云服务器。
      即 “登录 云服务器控制台 > 单击右侧操作栏的【登录】> 选择 VNC 方式登录云服务器”。

      注意:

      Linux 云服务器处于 CPU 高负荷状态时,控制台可以正常登录。

  2. 查看系统负载。
    输入 top 命令,查看 %CPU 列与 %MEM 列,确定占用较多资源的进程。

终止进程操作

  1. 分析列出资源占用情况,记录需要终止的进程 PID 。
  2. 输入k,再输入需要终止进程的 PID ,回车终止。此处以终止 PID 为 23 的进程为例。

    注意:

    若回车后出现 kill PID 23 with signal [15]:,则继续回车使用默认设定即可。

  3. 操作成功后,界面会出现Send pid 23 signal [15/sigterm] 的提示信息。按回车确认即可。

CPU 空闲但高负载情况处理

问题描述

load average 是 CPU 负载的评估,其值越高,说明其任务队列越长,处于等待执行的任务越多。
通过 top 观察,类似如下图所示,CPU 很空闲,但是 load average 却非常高。

处理办法

输入ps -axjf指令查看进程状态,并检查是否存在 D 状态进程。如下图所示:

说明:

D 状态指不可中断的睡眠状态。该状态进程无法被杀死,也无法自行退出。若出现较多 D 状态进程,可通过恢复该进程依赖资源或重启系统进行解决。

kswapd0 进程占用 CPU 较高处理

问题描述

Linux 系统通过分页机制管理内存的同时,将磁盘的一部分划出来作为虚拟内存。而 kswapd0 是 Linux 系统虚拟内存管理中负责换页的进程。当系统内存不足时,kswapd0 会频繁的进行换页操作。换页操作非常消耗 CPU 资源,导致该进程持续占用高 CPU 资源。

处理办法

  1. 输入top指令,找到 kswapd0 进程。
  2. 观察 kswapd0 进程状态。
    若持续处于非睡眠状态,且运行时间较长并持续占用较高 CPU 资源,可将问题转向内存不足来排查。
  3. 输入freeps等指令,查询系统内进程的内存占用情况,做进一步排查分析。
  4. 根据内存占用情况,可重启系统或终止不需要且安全的进程。