【性能诊断】八、并发场景的性能分析(windbg案例,连接泄露)
此前遇到一个项目反馈系统宕机问题,摘要描述如下:
- 系统不定期出现卡死现象,在多个模块不同功能上都出现过,未发现与特定功能相关的明显规律;
- 当系统出现卡死现象时,新的用户无法登陆系统;
- 跟踪应用服务器,未发现资源不足的情况(CPU、内存使用正常)
- 数据库服务器资源占用也正常(CPU不高,也未发现死锁、SQL阻塞等情况)
在问题再次发生时,使用ProcDump联系抓取多个dump文件:procdump -ma -s 20 -n 3 w3wp.exe
使用windbg命令(!tp)查看线程池发现,100多个线程都处于Running状态。
进一步使用命令(~* e!clrstack)查看所有线程的堆栈信息时,发现大量的线程在等待获取数据库连接。
至此可以推断,程序中可能存在连接泄露的代码。
查看数据库连接字符串没有配置连接池大小,缺省使用100个连接。
当然,使用应用服务器上的windows性能监视器,增加NumberOfPooledConnections,可以看到问题发生时前连接数陡增的情况,也可以验证此问题。
windbg主要操作如下:








Windows性能计数器的示例, NumberOfPooledConnections

【性能诊断】八、并发场景的性能分析(windbg案例,连接泄露)的更多相关文章
- 【性能诊断】五、并发场景的性能分析(windbg简介及dump抓取)
windbg简介 Windbg是在windows平台下,强大的用户态和内核态调试工具.相比较于Visual Studio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能 ...
- 【性能诊断】六、并发场景的性能分析(windbg案例,大量的内部异常造成CPU飙升)
在做产品的某个核心模块的性能优化时,发现压到100并发时应用服务器的CPU就飙升至90%以上,50并发以后TPS就基本定格在一个数值上.使用性能监视器收集应用服务器的数据,发现每秒的.NET CLR ...
- 【性能诊断】九、并发场景的性能分析(windbg案例,Fist Chance Exception/Crash dump)
经常会碰到这样的场景,自测及单单点的测试时没有任何问题,但在并发环境或生产环境下有时出现没规律的异常.报错等情况.在代码中增加日志是其中一种解决方式:抓取指定异常时的dump,通过wind ...
- 【性能诊断】七、并发场景的性能分析(windbg案例,线程阻塞)
简单整理一个测试Demo,抓取dump并验证,步骤如下: Symbol File Path:SRV*C:\Symbols*http://msdl.microsoft.com/download/symb ...
- Golang适合高并发场景的原因分析
http://blog.csdn.NET/ghj1976/article/details/27996095 典型的两个现实案例: 我们先看两个用Go做消息推送的案例实际处理能力. 360消息推送的数据 ...
- PLSQL_性能优化效能跟踪工具SQL Trace分析(案例)
2014-06-25 Created By BaoXinjian
- 并发-ConcurrentHashMap源码分析
ConcurrentHashMap 参考: http://www.cnblogs.com/chengxiao/p/6842045.html https://my.oschina.net/hosee/b ...
- 【性能诊断】二、单功能场景的性能分析(fiddler、SQL Profiler)
Fiddler fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测 ...
- 【性能诊断】三、单功能场景的性能分析(RedGate Profiler)
上一篇我们简单的对客户前端和数据库后端的性能问题进行了定位,如果排除了这两块,问题基本就确定在应用服务器上.但是我们往往对应用服务器,或者说应用程序的性能最陌生,一旦出现性能问题往往有无所适从的感觉, ...
随机推荐
- HDU5438--Ponds (拓排+BFS)
点击打开链接 题意:给定n个池塘,m对池塘相连,现在要将与少于2个池塘相连的池塘拆除,形成森林,求节点数为奇数的树权值之和 思路:按照拓排的思想不断删除度数小于2的节点 #include<bit ...
- Number Game_状态压缩
Description Christine and Matt are playing an exciting game they just invented: the Number Game. The ...
- Apache 中 .htaccess 文件设置技巧16则
.htaccess 文件 (Hypertext Access file) 是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能.. ...
- 让UIWebView弹出键盘上的按钮显示中文
UIWebView是一个很常用的视图,一般用来加载网页,比如百度: 点击文本框输入框后,会弹出一个带有toolbar的键盘,toolbar中有3个辅助按钮 有了这3个按钮,是方便很多,但默认是英文的, ...
- You must install 'hg' on your build machine
/***************************************************************************************** * You mus ...
- python中的re模块和正则表达式基础
1.正则匹配基础知识 (1)通配符. .只匹配一个字符 >>> re.findall("p.ckname","piiickname-pockname&q ...
- jconsole远程查看jvm性能
Java VisualVM -- JDK自带的强大性能监测工具 这里给出了另一种,可以通过jdk下bin目录下的jconsole.exe来观察java程序内存的使用及变化情况 一般远程调试可以用,性能 ...
- Trinity 安装
http://trinityrnaseq.github.io/ 安装包下载地址: https://github.com/trinityrnaseq/trinityrnaseq/releases 解压 ...
- tyvj 1402 dp
P1402 [NOIP2010]乌龟棋 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2010提高组复赛第二题 描述 小明过生日的时候,爸爸送给他一 ...
- Base适配器
package com.baidu.base; import java.util.List; import com.baidu.vo.Mydata;import com.bwie.yd.R;impor ...