性能分析之常用定位瓶颈办法

出现应用程序瓶颈症状:

1.吞吐率低,CPU高,其余指标正常。

分析建议:请求数不大,但是CPU繁忙,判断应用程序代码,如创建实体类对象的时候耗内存,或者资源使用完成不及时关闭,长时间运行,容易导致内存泄露。

2.每秒请求数曲线和吞吐率曲线不大致相似,其余正常

分析建议:每秒请求数和吞吐率为正比关系,吞吐率过低,表示服务器虽然能够接受服务器的请求,但返回结果较慢,可能是程序处理缓慢,此外其余参数指标正常,可判断应用程序出现问题。

3.CPU和内存不断增长,但其余值正常

分析建议:系统资源被征用,用完不释放,长此以往,内存泄露。

出现CPU瓶颈症状:

1.%ProcessortimeCPU使用率超过90%,其余正常。

分析建议:处理器长期超负荷工作,该CPU不能满足当前压力,建议更换CPU。

扫描二维码关注公众号,回复: 2521996 查看本文章

2. ProcessorQueue Length 处理器队列长度总是不稳定,或者偏高。

分析建议:CPU处理效果不稳定,或者CPU处理有堵塞,建议更换CPU。

3.processor/%user time非核心操作消耗cpu的时间过大。

分析建议:结合CPU使用率分析,如果cpu使用频率正常,可优化算法,优化数据库语句降低该值。

出现磁盘I/O瓶颈症状:

1.Avg.DiskQueue Length的值很高

分析建议:该值说明请求已经开始排队,服务器不能及时读取所有请求,建议更换读取速度更好的硬盘。

2. Avg.disksec/read的参考数值

分析建议:该值小于10ms,好。10ms-20ms,正常。20ms-50ms,需要重视。大于50ms,严重的磁盘I/O瓶颈

3. Avg.disksec/write的参考数值

参考Avg.disk sec/read的参考数值

4. %Disk time的参考数值

分析建议:一般该值处于60%—90%即可,超过90%,磁盘有瓶颈。

出现连接数瓶颈症状:

1.connectionrefused内容过多。

分析建议:请求过多,系统不处理,服务器拒绝请求,说明服务器开启默认自我保护的机制,超过请求数,予以拒绝。此时,应调整服务器最大连接数,每次增加25%。此外,拒绝的内容较多,可排查下是不是图片较多,或者有些内容需要请求外网。

出现数据库瓶颈症状:

1.业务失败多,各项指标但都正常。

分析建议:数据库连接池数过小,需要适当调整,此外,可能是数据库死锁导致,究其原因,进程处理的不当。

2.数据库效率低,大部分的时间消耗在数据库上。

分析建议:对数据库进行优化,分表,分区,创建索引,优化语句。

出现内存泄露瓶颈症状:

1.系统长时间运行爱死机,相应时间越来越长。

分析建议:process\private bytes计数器和process\workingset 计数器的值往往会升高,同时avaiable bytes的值会降低。内存泄漏应该通过一个长时间的,用来研究分析所有内存都耗尽时,应用程序反应情况的测试来检验。

2. 响应时间慢慢边长,然后稳,最后降。

分析建议:适当减少系统连接数,不让服务器中堆积大量来不及排队的请求。

猜你喜欢

转载自blog.csdn.net/zuozewei/article/details/79813885