`

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

阅读更多

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

定位方法: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等工具结合线程分析、业务分析,寻找热点。

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

 

文章系本人原创,转载请注明作者和出处

1
1
分享到:
评论

相关推荐

    code.zip.web全栈工程师实战源码,

    思维导图则可以帮助理解和梳理整个项目结构,快速定位和回顾关键知识点。 六、实战演练 实战项目是检验理论知识的最好方式。通过实际运行和修改源码,学习者可以亲身体验开发过程,提升解决实际问题的能力。这不仅...

    软件性能测试知识体系V1.1

    根据给定文件的信息,我们可以梳理出“软件性能测试知识体系V1.1”中的关键知识点。这份资料描述为“稀缺资源”,并且具有清晰的内容结构,接下来将详细解析这些知识点。 ### 一、软件性能测试概述 #### 1.1 定义...

    F5BIG-IPV9常见问题处理手册061220.pdf

    作为IT行业专业人士,以下是针对F5 BIG-IP V9常见问题处理手册的详细知识点梳理。 ### 第1章 初始化设置相关问题处理 #### 1.1 管理网口地址设置 - 通过LCD按键设置BIG-IP的管理网口地址时,需要在设备前面板进行...

    毕业设计论文-IT计算机-[影音娱乐]去秀吧视频秀 jsp学习版_goshow8com-源码.zip

    - 项目中应包含完善的错误处理机制,如异常捕获和处理,以及使用日志库如Log4j记录系统运行状态,方便调试和问题定位。 通过对以上知识点的学习和实践,开发者不仅可以理解这个毕业设计项目的运作机制,还能提升...

    http缓存知识梳理

    另外,可以借助开发者工具查看网络请求的缓存状态,帮助定位和解决缓存问题。 服务器需要合理配置响应头中的缓存相关字段,确保在提供最优性能的同时,也确保内容的时效性和一致性。而客户端方面,则需要合理管理...

    PHP 7 Real World Application Development pdf 0 分

    在本篇知识梳理中,我们将围绕着《PHP 7 Real World Application Development》一书的内容,对PHP 7的新特性、性能提升、以及在实际应用开发中解决常见问题的方法进行深入探讨。 首先,从标题...

    gsoap网络资源汇总和相关连接

    - 编译和安装过程中的常见问题及解决方法。 2. **环境配置:** - 设置环境变量的具体步骤。 - 配置开发环境,确保可以顺利编译gSOAP生成的代码。 3. **代码生成与调试:** - 使用gSOAP生成客户端和服务端代码的...

    面试资料 具体的不知道是啥

    4. **面试常见问题** - 作用域与执行上下文:解释词法作用域和动态作用域的区别。 - this指向:理解this在不同环境下的指向问题及解决方法。 - 事件循环:深入了解事件循环机制及微任务与宏任务的区别。 - 性能...

    django 2.0 官方文档

    Django 2.0是一个开源的高性能Web框架,专为快速开发、干净且实用的代码设计。自从2005年Django被创建以来,它已经被广泛应用于各种类型的网站,从内容管理系统和wiki,到社交网络和新闻网站。Django 2.0版本在2018...

    java面试宝典

    熟练查阅API,快速定位解决问题的方法,是每个Java开发者必须具备的能力。 综上所述,《Java面试宝典》及相关API文档是Java求职者宝贵的复习资源,它们将帮助你系统地梳理Java知识体系,增强面试竞争力。通过深入...

    android development guide

    - **常见问题解答**:收集了一系列开发者常遇到的问题及其解答。 #### 十、开始开发 - **SDK下载**:首先需要下载并安装Android SDK(软件开发包),这是进行Android开发的基础。 - **快速入门**:指南中包含了一...

    Tomcat权威指南

    - **故障排查**:提供一系列常见问题的解决方法和调试技巧,帮助快速定位并解决问题。 #### 六、案例分析与实战经验 - **实践案例**:本书通过具体的案例来展示如何利用Tomcat部署和管理Web应用程序。 - **最佳...

    软件测试工程师面试题库

    ### 软件测试工程师面试题库知识点梳理 #### 兼容性测试 - **定义**:兼容性测试旨在确保软件能在多种环境下正常运行,包括不同的操作系统、浏览器、硬件配置等。 - **侧重方面**: - 操作系统兼容性:如Windows...

    Oracle Text 开发人员指南

    - **常见问题及解决方案**:列出使用过程中可能遇到的问题及其解决方法。 - **日志分析**:指导如何阅读和分析日志文件,以便更快地定位问题原因。 #### 八、案例研究 - **企业级应用案例**:通过具体案例展示 ...

Global site tag (gtag.js) - Google Analytics