摘要:
公司的开发环境\测试环境和生产环境的区别都比较大.每次新版本启动前,都需要很长的时间来调试测试环境,很大一部分工作都在于改数据库链接,接口地址.然而看似简单的活却总是存在问题。上周五配置完环境出现了一个现象:cpu和内存的使用都很低,但网页却要很长的时间才能显示... 阅读全文
摘要:
问题描述:公司合作的一个酒店预订网站需要在页面上投广告,但对方给了一个flash文件,要求链接到其首页。直接在html的flash object前面加上<a href... ,发现链接是点不动的,网上找到的解决方案是用一个透明的大button包在flash的最外层,或是用一个层盖住flash,然后定义button的onclick事件,但这种方式在firefox下工作不正常。同时用户最关心的seo作用消失了,因为这不是一个正常的链接,是用javascript实现跳转的... 阅读全文
摘要:
几天前写的[Debug实践]windbg+性能监视器解决一个内存泄漏问题(非托管资源) 随笔中,解决了一个非托管资源泄漏的问题,加一个兄弟篇:)
现象:服务器内存占用突发性升高,从任务管理器中看w3wp.exe占用内存1G多,CPU占用率不高
分析过程:这些年来碰到的大多数内存占用过高问题都是托管资源类的,看到系统中的报警,第一直觉便是采集服务器上的dump文件... 阅读全文
摘要:
高CPU是网站服务器常见的一种故障,很多windbg教程中都拿高CPU做例子。3月份我在公司服务器上也碰到一次,整个debug过程十分顺利且常规,但最终找到的原因却很有意思,与一个挂马行为有关。
现像:网站服务器的w3wp进程经常出现突发性的高CPU,如下图week15-16处所示。修正后的效果还是很明显的...
阅读全文
摘要:
今天下午解决一个困扰多天的内存问题,将分析过程记录一下
问题描述:
w3wp内存慢慢升高,最后大约会达到1.3G左右,Cpu资源并不是很紧张
分析过程:
之前碰到的几次问题都是托管内存泄漏,按以往的经验直接在内存高点时dump了一个文件,一个1.4G大的文件,windbg打开,
0:000> !eeheap -gc
GC Heap Size 0x22cf6b80(584018816)
因为最近一个缓存的项目刚上线,将一些数据直接放到了内存中,500多M算是一个意料中的大小... 阅读全文
摘要:
公司使用的服务器装的是64位的2003系统,以32位的形式运行着iis6.
从任务管理器中看到w3wp.exe进程后面加上了*32标识,
而服务器上会同时存在x64和x86目录,
如果直接运行
ntsd -pv -p 5756 -logo d:\out.txt -lines -c ".dump /ma d:\testlocal.dmp;q"
来生成一个dump文件,则会直接调用x64目录内的ntsd,
这时取到的相关信息是wow64兼容层的,并非用户的32位程序,
用32位的windbg打开testlocal.dmp,看到的堆栈中会包含wow64相关内容,而非用户所想看的32位程序堆栈。 阅读全文
摘要:
最近服务器上某些进程的内存使用会突然升高,于是写了一个脚本在内存占用高点时抓取dump以便分析.
期间走了不少弯路才找到vbscript控制进程时的属性名,随笔记录一下
objprocess的常用属性:
'MsgBox "Process: " & objProcess.Name & objProcess.UserModeTime
'MsgBox "Process ID: " & objProcess.ProcessID
'MsgBox "Thread Count: " & objProcess.ThreadCount
'MsgBox "Page File Size: " & objProcess.PageFileUsage
'MsgBox "Page Faults: " & objProcess.PageFaults
'MsgBox "Working Set Size: " & objProcess.WorkingSetSize 阅读全文