计算机系统应用教程网站

网站首页 > 技术文章 正文

架构师修炼之性能分析:Linux系统性能分析USE方法与工具

btikc 2024-11-11 11:17:43 技术文章 5 ℃ 0 评论

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

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

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

CPU-使用率

(1)系统层面

实时情况

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

历史情况

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

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

(2)进程层面

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

CPU-饱和度

(1)系统层面

实时情况


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

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

历史情况

(2)进程层面

暂无

内存-使用率

(1)系统层面

实时情况


Buffers:缓冲区高速缓存

Cached:页面缓存

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

历史情况


(2)进程层面


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

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

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

SHR:共享内存

内存-饱和度

(1)系统层面

实时情况


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

历史情况


(2)进程层面


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

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

存储IO-使用率

(1)系统层面

实时情况


%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

历史情况


(2)进程层面

iotop命令

存储IO-饱和度

实时情况


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

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

历史情况

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

存储-错误

暂无

网络接口-使用率

(1)系统层面

实时情况


历史情况


(2)TCP连接层面

暂无

4.2 饱和度

(1)系统层面



(2)TCP连接层面

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/

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表