文档

系统类故障排查

更新时间:
一键部署

概述

本文主要介绍使用阿里云服务器ECS时的系统类故障排查,包含CPU、磁盘I/O、内存、硬盘、带宽资源占用异常的问题排查与定位。

详细信息

说明

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。

  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

请根据现场实际情况,选择以下对应的解决方案。以下检查步骤以CentOS 7.9为例。

CPU负载

连接登录ECS,输入以下命令:

sudo top

查看图片红框处的“load average”,此处三个数值分别为 1分钟、5分钟、15分钟前到现在的系统负载平均值。一般情况下如果这个数除以逻辑CPU的数量,结果高于5(具体数值需要根据实际服务器CPU处理能力以及系统使用情况而定)的时候就表明系统在超负荷运转了。 结合“%CPU”占比较高的PID基本可定位是什么程序(COMMAND)在大量占用CPU。

image

逻辑CPU数量可以通过以下命令获取:

sudo lscpu

其中,“CPU(s)”的数量即为逻辑CPU个数。

image

磁盘I/O

iostat是Linux中被用来监控系统的I/O设备活动情况的工具,可通过以下命令查看磁盘I/O情况。

显示所有设备的负载情况。

sudo iostat

image

以M为单位显示所有信息,指定硬盘vda,间隔1秒,总共显示5次。

sudo iostat -d -m vda 1 5

image

内存

查看当前服务器内存使用情况,可使用以下命令:

sudo free -m

其中,“Mem”为服务器实际内存,“Swap”为交换分区内存。“total”指总计物理(swap)内存的大小,“used”指已使用物理内存(swap)的大小,“free”指可用的物理内存(swap)大小,“shared”指多个进程共享的内存总额,“buff/cache”指磁盘的缓存大小,“available”指可以被新应用程序使用的内存大小。同时结合“top”命令中的“%MEM”占用信息基本可定位是什么程序(COMMAND)在大量占用内存。

image

硬盘(磁盘)

查看当前系统已挂载磁盘使用情况,可以使用以下命令:

sudo df -TH

image

查看当前系统inode信息,可以使用以下命令:

sudo df -i

image

查看具体文件夹占用大小可使用以下命令:

sudo du -sh *

image

流量带宽

iftop是Linux系统一个免费的网卡实时流量监控工具,可以监控包括指定网卡的实时流量、端口连接信息、反向解析 IP 等信息。

iftop并不是系统预装的,如系统内没有iftop相关命令,可以使用以下命令安装:

CentOS:

sudo yum install iftop

Ubuntu:

sudo apt install iftop

以下示例通过使用iftop命令,找出消耗流量最大的IP和端口。

指定本机eth0网卡。

sudo iftop -i eth0 -nNB -m 100M

20221229100135

按下L显示流量刻度。

image

按下T显示总量。

image

按下t,发送和接收变成一行。

image

多次按B,左上角会多次显示"Bars show 2s/10s/40s average",通过多次刷新统计即可得到消耗最大的IP。

image

按下l,输入筛选出来消耗流量最大的IP,即上图中的“*.*.*.116”,输入后点击回车

image

按下p,即可查看到是哪个端口消耗的流量较大。

image

进程

ps 命令用来列出系统中“当前正在运行”的相关进程,使用该命令可以确定有哪些进程正在运行和对应运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。

输入以下命令:

sudo ps aux

image

  • 本页导读 (0)
文档反馈