当前位置:首页 > 开发 > 互联网 > 正文

Web项目性能问题常见定位方法梳理

发表于: 2015-05-29   作者:cfyme   来源:转载   浏览次数:
Web
摘要: 第一类:请求无响应,浏览器始终处于等待状态。 定位方法:kill -3或者jstack先分析线程堆栈,找到当前block的线程。 常见于:外部接口调用无返回或者网络IO阻塞无响应;死锁;死循环;……。   第二类:宕机,进程挂掉。 定位方法(这一类问题普遍比较难定位):     (1)寻找hs_err_pidxxx.log这样的JVM日志 &n

第一类:请求无响应,浏览器始终处于等待状态。

定位方法:kill -3或者jstack先分析线程堆栈,找到当前block的线程。

常见于:外部接口调用无返回或者网络IO阻塞无响应;死锁;死循环;……。

 

第二类:宕机,进程挂掉。

定位方法(这一类问题普遍比较难定位):

    (1)寻找hs_err_pidxxx.log这样的JVM日志

    (2)使用JVM参数在JVM crash时写入到dump文件中

    (3)catalina.out中寻找最后的日志

    (4)宕机前环境数据采集

常见于:JDK bug(数次遇到过JIT引起的这一类问题);调用dll的问题;……

 

第三类:请求响应时间长。

定位方法:kill -3或者jstack先分析线程堆栈,看线程大都停留在什么操作上面,再细化分析。

常见于: 内存不足,可见到连续的Full GC;网络拥塞;LoadRunner等压力客户端瓶颈;数据库瓶颈,可进一步分析DB快照;……

 

第四类:TPS低;TPS逐渐降低;TPS振荡幅度过大。

定位方法(这一类问题最常见,定位的方法也最复杂):

首先观察在压力增大时,CPU使用率能否上去,如果不能上去,寻找其他瓶颈:网络/内存/磁盘/……;CPU

使用率上去了,观察在无压力时,是否有背景CPU使用(例如有后台定时任务线程消耗了大量CPU资源),如果没有,那可以尝试JProfiler等工具结合线程分析、业务分析,寻找热点。

常见于:其他业务线程干扰;内存泄露;连接句柄用完;缓存命中率低下……

 

转载地址:http://raychase.iteye.com/blog/1233840

Web项目性能问题常见定位方法梳理

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
摘要:介绍影响 Web 项目转换的 Visual Studio 2005 Web 项目和 ASP.NET 2.0 框架的更改,然后讨论
摘要:介绍影响 Web 项目转换的 Visual Studio 2005 Web 项目和 ASP.NET 2.0 框架的更改,然后讨论
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.htm
ASP.NET 和 Visual Studio 是什么? ASP.NET 是一种创建动态 Web 应用程序的技术。编译 ASP.NET 页
ASP.NET 和 Visual Studio 是什么? ASP.NET 是一种创建动态 Web 应用程序的技术。编译 ASP.NET 页
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.htm
性能问题定位思路 原则:倒金字塔型,由表及里,逐步聚焦,大胆假设,小心求证 顺序:硬件->操作
1.Master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非
测试环境 服务器:II服务器 网站:门户网站 条件 并发: 2000 LoadRunner思考时间:1s 表现 CPU:10
原理介绍:使用nstd工具进行进程崩溃时内存和堆栈转储。 编译Release版本时打开调试选项,将exe和pd
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号