一次Ubuntu测试服务器突然变慢的排查(cpu、内存、网络和磁盘)及 相应的排查工具和方法详解

前言:今天早上,测试同学反映 昨天好好的服务,今天突然都不大能用了。。。由于早上家里停水,整个人到公司都有点懵,也是摸不着头脑。但是静下来想想,无非就是 cpu、内存、两个IO(网络和磁盘),不如用个笨方法一点一点排查就是了。

一、CPU

推荐文章:https://www.cnblogs.com/sbaicl/articles/2752068.html

用的当然是很常见的 TOP命令,效果图如下

几个重要的参数解释如下:

load average : 系统负载,三个数 依次表示 一分钟、五分钟、以及十五分钟 时间内的平均值。 当这个值接近于 1 时,说明 系统的资源已经处在恰好够用或者说马上要不够用的边缘。因此,大多数时候,当值超过了 0.7的时候,我们就应该开始分析资源占用较多的原因,并投入行动使其保持在能让我们安心睡觉的范围内。

Tasks:total 进程总数,running正在运行的进程数,sleeping睡眠的进程数,stopped 停止的进程数,zombie 僵尸进程数

%Cpu: CPU的使用率,只有一行的话,显示的是 综合值,可以按下  数字键 1,将分别展示出所有的 CPU的各自使用情况,顺便看下这个服务器有几个核。

us:用户程序占CPU百分比,sy操作系统内核占用CPU百分比,id:空闲CPU百分比,wa等待输入输出的CPU时间百分比,hi:CPU处理硬件中断的时间占比,si、st:CPU服务于软中断的时间占比

主要就是看 us 和 sy, us占用过高,那就在下面列表里找到占用过高的进程的PID,再去找对应的服务,分析原因;sy占用过高,操作系统处于忙率状态,一般就是存在频繁的上下文切换,这个就要看代码里哪边会有很激烈的竞争了,可能需要改变实现或者调整策略

二、内存

推荐文章:https://www.cnblogs.com/ultranms/p/9254160.html

上面的TOP命令也显示除了内存的占用情况,但是以 KB为单位,不是很直观

使用  free 命令,配合  -m 可以以 MB为单位显示出内存的使用情况

free -m  效果如下

Mem:内存  Swap:磁盘,是一种内存不够用时的plan B

实际看的时候 关注  available,这个是 实际可用的内存大小,举例:现在 free 是  209M,如果我起个Java服务,分配 500M,仍然是可以的,Linux会压缩 buff/cache的空间,从而可以给程序提供需要的内存。

三、磁盘

首先需要看下磁盘空间使用情况,看看是不是因为磁盘满了,导致服务缓慢

df -h 查看磁盘空间使用情况

关注这个   Use%  就是实际的使用率了,比较直观

其次是看 磁盘IO是否忙率,也就是 每秒读写的数据量

iostat  查看磁盘使用情况

推荐文章:https://www.cnblogs.com/the-tops/p/6708187.html

比较重要的参数 
%util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的  如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负载,该磁盘可能存在瓶颈。
svctm:平均每次设备I/O操作的服务时间 
await:平均每次设备I/O操作的等待时间 
avgqu-sz:平均I/O队列长度 

四、网络

这个我认为比较直观的是 测下当前服务器的网速

speedtest-cli  测试当前网速

这个是其它服务器的截图,我测试出的测试服  上行速度  0.00Mbit/s,怪不得外面访问那么慢,服务器几乎没有能力把东西发送到互联网上。。。。。

下行速度: 下载互联网资源到服务器的速度

上行速度:服务器发送资源到互联网的速度

总结:

结果查了半天,打开阿里云一看,早上突然有大量的访问到服务器,某个时间点后断崖式下跌,然后服务器又可以正常提供服务了,搞不懂。。。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值