linux查看内存_架构师修炼之性能分析:Linux系统性能分析USE方法与工具
发布日期:2021-10-31 07:31:36 浏览次数:5 分类:技术文章

本文共 1935 字,大约阅读时间需要 6 分钟。

USE方法是Linux系统性能分析中的一种系统性方法。

USE 方法定义:对于所有的资源,查看它的使用率(utilizations)、饱和度(saturation)和错误(errors)。

下面我们来看它如何作为一种工具在Linux平台上实践。

CPU-使用率

(1)系统层面

实时情况

350cf8df9b67355749376f355efbd91b.png

使用mpstat命令看系统实时性能

为什么不用top?top命令本身的CPU消耗很大,比较慢,容易对线上服务本身产生影响。

历史情况

1e94b4ccd11c3db1eb4bceb582540e21.png

使用sar命令看系统历史负载

如果想看以前的,可以用sar -f指定文件,文件一般在 /var/log/sa/sadd中。

修改采样频率:修改文件/etc/cron.d/sysstat

(2)进程层面

25fa1d076a89906a44a607fc9adba5d7.png

使用pidstat命令查看进程负载

CPU使用率不高时,用top命令,输入shift-P按cpu使用率百分比从大到小排序

ebb1b28cc7ea72443282b25ee0ddaf7e.png

使用top命令查看进程负载并按cpu使用率排序

CPU-饱和度

(1)系统层面

实时情况

d822a73ecc6b383925cb7a1641c75f7c.png

使用vmstat查看系统实时负载饱和度

r:系统正在运行或就绪(在排队)的任务数量

当r值大于cpu数量时,说明系统负载过高

历史情况

fc87746697568431ccc0d6632e7ca227.png

使用sar命令查看系统历史负载饱和度

(2)进程层面

暂无

内存-使用率

(1)系统层面

实时情况

c7ec50d63eb95ac405cc65e069a7474f.png

使用free命令查看系统实时内存负载

Buffers:缓冲区高速缓存

Cached:页面缓存

实际可用内存: free + buffers + cached

历史情况

9f554310c6a8d53811c89fe742477f35.png

使用sar命令查看系统历史内存负载

(2)进程层面

0b1811633eab06281ac271df025aaa6c.png

使用ps命令查看进程实时内存负载

负载不高时,使用top命令,输入shift-M按内存使用百分比从大到小排序

80818643095f29f0b5eea72f3d42eedc.png

使用top命令查看多个进程实时内存负载。

RES:驻留内存,即实际使用的内存

VIRT:虚拟内存,即申请使用的内存

SHR:共享内存

内存-饱和度

(1)系统层面

实时情况

ef6c0901038683471ae43c6da81ac153.png

使用vmstat查看系统内存实时饱和度情况

swap in/out有增加时表明系统内存不足

历史情况

dfff8b2ad78f3fecc382b8907059e573.png

使用sar命令查看系统内存历史饱和度情况

(2)进程层面

ec9a40cf98647098fcdf5263495699fa.png

使用proc文件系统查看进程内存饱和度情况

次要缺页率(min_flt):该任务不需要从硬盘拷数据而发生的缺页(次缺页)的次数

http://www.linuxidc.com/Linux/2010-12/30589.htm

存储IO-使用率

(1)系统层面

实时情况

8c790964dae28f15aec879ae6ea1681f.png

使用iostat查看系统实时IO负载

%util:CPU用于处理IO请求的时间百分比,当达到100%时表示IO系统满负荷(对于RAID或SSD,即使超过100%也不代表IO系统繁忙)

http://www.fwqtg.net/iostat%E4%B8%AD%E5%85%B3%E4%BA%8Eutil%EF%BC%8Csvctm%E5%AD%98%E5%9C%A8%E7%9A%84%E9%99%B7%E9%98%B1.html

历史情况

5f04bc85e51b1a7277e3237029e6b4c4.png

使用sar命令查看系统历史IO负载

(2)进程层面

iotop命令

22a3af67d4065646df324b73df268bd5.png

使用iotop查看进程实时IO负载

存储IO-饱和度

实时情况

df1ea5598b715dca41ec5a9ec7f6fa97.png

使用iostat查看系统IO负载

avgqu-sz:在设备或请求队列中活跃的平均请求数

当此值大于1时或await较高时,表明IO系统请求已经过饱和了

历史情况

与查看“使用率”类似命令

存储-错误

暂无

网络接口-使用率

(1)系统层面

实时情况

3fd9f26e428590eac115fe6fe53eee5d.png

ifstat查看系统网络实时负载

cb2f7a233064126b03b604cec7089092.png

sar查看系统网络实时负载

历史情况

8c6bcca8634c02c08db855fd38af79a0.png

sar查看系统网络历史负载

(2)TCP连接层面

暂无

4.2 饱和度

(1)系统层面

cb05744ba05fb2a95f6d70fefaea5152.png

ifstat查看系统网络负载饱和读

(2)TCP连接层面

d8548f79683788245222564571f3abe6.png

netstat查看连接负载

LISTEN 状态: Recv-Q 表示的当前等待服务端调用 accept 完成三次握手的 listen backlog 数值,也就是说,当客户端通过 connect() 去连接正在 listen() 的服务端时,这些连接会一直处于这个 queue 里面直到被服务端 accept();Send-Q 表示的则是最大的 listen backlog 数值,这就就是上面提到的 min(backlog, somaxconn) 的值。

其余状态: 非 LISTEN 状态之前理解的没有问题。Recv-Q 表示 receive queue 中的 bytes 数量;Send-Q 表示 send queue 中的 bytes 数值。

http://jaseywang.me/2014/07/20/tcp-queue-%E7%9A%84%E4%B8%80%E4%BA%9B%E9%97%AE%E9%A2%98/

转载地址:https://blog.csdn.net/weixin_39934257/article/details/109865063 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:split函数python_python strip() 函数和 split() 函数的详解及实例
下一篇:win10设置pin一直转圈_WIN10安全模式下解决WINDOWS将于一分钟后重启。

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月02日 04时16分32秒