性能如何通过分析后台资源确定瓶颈之CPU内存

2022-04-24 16:17发布

确定瓶颈之CPU、内存

影响性能的因素

CPU  内存 网络  硬件 i/o  中间件  应用服务器  数据库

家门口的路比较拥堵:解决方案---多来几条路/加宽路/修地铁/修个桥、修整路面、找交警指挥交通/红绿灯、限行、分散周围居民、收费、其他路段的问题

CPU--中央处理器--中央处理单元

%processor time(处理器时间),指系统执行非空闲时间百分百比。

处理时间的阈值(正常范围),对于CPU利用率,每个公司要求不一,一般平均不超过90%是正常,如果其平均值持续超过90%,则怀疑是处理器CPU瓶颈,表示此测试的负载对于目前的硬件过于沉重。

processor queue lengthProcessor队列长度):处理器中暂时无法处理的线程就成队列,排队等待的线程的个数就称为队列长度。

队列不超过n+1,如果处理器列队中总是有n+1以上的线程通常表示处理器堵塞。

n表示逻辑CPU的个数

判断CPU是否是程序的瓶颈

CPU使用率持续过高,队列长度过长:超过N+1  CPU存在问题:解决方案:增加CPU

第一条线是虚拟用户,第二条线是CPU,当虚拟用户不再增加, CPU使用率还在持续增减,存在问题

 

如果有多个CPU,按1展开,再按1收起   有问题,但问题不大

Id表示空闲的CPUCPU使用率85%

 

内存

available mbytes指当前系统的可用内存(单位M),至少要有10%物理内存。

 

如何查看内存:  windows:计算机---右键--属性

Linuxdf  -m   /  free    top   

 

Pages fault/sec 处理器每秒处理的错误页数,包括软错误(小错误)和硬错误(大错误)

内存泄漏

程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。

在长时间的性能测试中,如果用户数一直不变,CPU使用率一直平稳,可用内存在逐步减少,考虑是否发生内存泄漏。

----使用过的内存没有及时释放/被回收 gc:垃圾回收

判读是否发生了内存泄漏

在长时间的性能测试中,如果用户数一直不变,CPU使用率一直平稳,可用内存在逐步减少,如果发生的内存泄漏,

process\private bytes计数器的值会 升高

process\working set计数器的值会 升高

memory\available bytes的值会  降低

 

如下图没有发生内存泄漏

 

该图存在内存泄漏