性能测试全栈笔记:51.性能监控工具-cpu进阶/内存/磁盘篇
性能测试全栈笔记
思考:拿到性能项目该怎么做?
- 1.根据配置文档,部署项目,比较难的,请教运维部署
- 2.分析需求,分析高频接口
- 3.怎么找性能瓶颈?(重点关注服务器端)
- 响应时间:事务维度、接口维度
- TPS:一般互联网公司1000+/s,一线互联网千万/百万级别/s
- 成功率:一般互联网公司99.999%
- 操作系统级别监控:就是我们之前部署过的服务器
五十一、性能监控工具-cpu进阶/内存/磁盘篇
首先看一张草图:
top命令:top
输入:1(显示每核cpu的占比)
分析:
重点:us,sy,wa的占比
us:70%以上;sy:30%以下
如果:us+sy=70%
那么,us=70%*0.7=49%以上;sy=70%*0.3=21%以下,都是可以的
如果比较纯粹的看,就看id(空闲占比),简单计算:100%-30%(空闲)=70%(繁忙率)
从第六行开始,动态展示占用的进程。
内存:
命令:free
free -m
:MB为单位
free -k
:k为单位
total= used + free + buff/cache
- 第一列
- Mem 内存的使用信息
- Swap 交换空间的使用信息
- 第一行
- total 系统总的可用物理内存大小
- used 已被使用的物理内存大小
- free 还有多少物理内存可用
- shared 被共享使用的物理内存大小
- buff/cache 被 buffer 和 cache 使用的物理内存大小
- available 还可以被 应用程序 使用的物理内存大小
- free 与 available 的区别:
- free 是真正尚未被使用的物理内存数量
- available 是应用程序认为可用内存数量
- buffer和cache
- 两者都是Linux下的缓存机制,其中buffer为写操作的缓存,cache为读操作的缓存
- swap
- 交换空间,磁盘上的一块空间,当系统内存不足时,会使用交换空间
磁盘一:
命令:iostat
安装:[root@jmeter1 ~]# yum -y install sysstat
输入:iostat
一般用:iostat -x -k 1
- -x:展示磁盘的扩展信息
- -k:以k为单位展示磁盘数据
- 1:每1秒刷新一次
结果分析:
- iowait :它指示 cpu 用于等待 io 请求完成的时间
- util:磁盘IO使用率,单位%,反映磁盘的繁忙程度(时间维度),上限100%(重点)
- r/s:每秒读请求数(辅助)
- w/s:每秒写请求数(辅助)
- rkb:每秒读磁盘字节数(重点,一般看这个)
- wkb:每秒写磁盘字节数(重点,一般看这个)
小结:如果util一直无限接近100%,那么基本可以说明遇到了性能问题,但需排除磁盘是否开启了debug模式
磁盘二:
命令:df -h
[root@jmeter1 ~]# df -h
分析:一般看Size最大那个use%的数据,小于90%
磁盘速度测试:
磁盘IO读命令:
先安装:yum -y install hdparm
然后:hdparm -T /dev/sda
可以看到:2秒钟读取了24622 MB的缓存,约12332.40 MB/sec
磁盘IO写速度:time dd if=/dev/zero of=test.dbf bs=8k count=300000 oflag=direct
可以看到,每次写入/读取8k的数据,执行300000次,消耗32.4649 秒,速度75.7 MB/秒
至此,top进阶/内存/磁盘篇学习到这里,下面开启性能监控综合工具篇章。