jmeter第五节之性能调优以及分析帮助开发定位性能问题方法
前提:要知道性能的四个重大指标 CPU 内存 IO 网络 IO 指磁盘的读写
一般常用看你电脑卡不卡 -看cpu
比如你电脑是4核的,物理核4核,代表你电脑在同一时间内可以完全并发四个人 ,实际不是这样的
如果你的进程多了,十六个人有三十二个活,肯定有一个人多干几个活
如果物理核4核,逻辑核8核,每个核可以同时并发两个线程 ,实际是4核 但是一般都当8核用
windows查看方法,任务管理器 性能
linux 查看核数
如何查询CPU信息:
在linux下, /proc/cpuinfo文件中读取CPU信息
查看 CPU 个数:
cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc –l
查看 CPU 物理核数:
cat /proc/cpuinfo | grep 'cpu cores' | sort | uniq
查看 CPU 逻辑核数:
cat /proc/cpuinfo | grep 'siblings' | sort | uniq
cpu的使用率和平均负载的问题?????????
cpu 70%啥意思呢,百分之70的时间点cpu在干活
举个简单例子,在单处理器中,任务1,先工作10ms,任务2再工作30ms,之后CPU空闲60ms。则此100ms时间段内,CPU的利用率就是40%
查cpu的命令?????
top: 用来监控Linux的系统状况,比如cpu、内存的使用
us代表用户的进程占了多少cpu 分析 如果用户比较高,说明电脑跑了应用程序占得比较多
sy 系统自己的应用程序 分析 sy 比较高,应该应用程序调了一些功能 比如读写
id 空闲的时间
如果你有多核cpu 按了top 你就按下1 会展示两个cpu
查看平均负载 分别显示1分钟,五分钟,十五分钟的负载情况
当前cpu正在运行和排队等待的CPU平均有几个 ,之前那个时间有几个等待
平均负载更能看出一个人忙不忙 ,看分钟的间隔可以看到上升和下降趋势
mpstat: 多核cpu性能分析工具,-P ALL监视所有cpu, 输出频率 x 秒
mpstat 1 一秒刷新一次
pidstat: 进程性能分析工具,-u 显示cpu利用率
实际场景:看看cpu 是否正常 常用思维
场景一:你压测接口,发现tps上不去了 这时候top 看cpu 发现cpu 高了 90% 平均负载也大排队4个 这是真忙 也叫计算密集型 优化具体要看为什么忙 看代码调优
场景二:cpu90% 平均负载低 4 这种情况还好 不是很常见
场景三:cpu 55% 平均负载 15 这种情况 要经验看iowatit
io高不高 等待磁盘读写占用百分比,如果这个高超过20%就很高了,有时候7%就高了正常5%或者没有,说明cpu 把大量时间放在磁盘读写上,因为等待磁盘读写不算cpu使用率
场景四:cpu 55% 平均负载:3 不忙是正常的情况
例子:
一.安装
yum install -y epel-release
yum install stress -y
场景一: CPU 密集型进程(计算密集型)
stress 是一个 Linux 系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。
stress --cpu 1 --timeout 600 启动一个进程,不停计算一个随机数平方根数。600秒后结束
stress --cpu 2 --timeout 600
stress --cpu 3 --timeout 600
高平均负载 伴随着 高cpu使用率
场景二:I/O 密集型进程
stress -i 1 --timeout 600 启动一个进程,不停发送一个sync指令,将存于 buffer 中的资料强制写入硬盘中
stress -i 2 --timeout 600
stress -i 3 --timeout 600
高平均负载 伴随着 不是很高的cpu使用率