06 2011 档案

摘要:注:本文仅针对 DiscuzNT3.0, sqlserver 2000版本,其他版本请勿对号入座。你没看错标题,的确是在线人数和Regex.IsMatch()引发的hang。事情是这样的,就在今天我们的论坛出现的挂起问题,当时刚好赶上了抓dump文件。于是就有了今天这篇文章。我们先用windbg看看论坛当时在干什么吧。1. 打开文件,运行 .load sos, 因为是hang,所以当然是要运行 !syncblk , 下面是运行结果:0:000> .load sos0:000> !syncblkIndex SyncBlock MonitorHeld Recursion Owning 阅读全文
posted @ 2011-06-26 21:11 鸽子飞扬 阅读(1936) 评论(9) 推荐(4) 编辑
摘要:注:本文仅针对 DiscuzNT3.0, sqlserver 2000版本,其他版本请勿对号入座。在本系列的第(4)篇中,我们提到过windbg,上次没能华丽登场的他,今天终于要一展才华了。解决问题是windbg与生俱来的功夫,他今天将怎么样来解决我们的问题,静听分解。经过第(4)篇的优化之后,我们的论坛迎来了每日100万pv的突破性指标,相对于我们其他项目来说,这个量虽然不值一提,但毕竟这个项目是一切从0开始,能达到这个量也算是一个小突破,值得小庆祝一下。不过问题也随之而来了。我们的iis服务器的cpu占用率从之前的约30%,上升到了80%,按照我们的经验,这是不合理的,80%已经是一个危险 阅读全文
posted @ 2011-06-18 18:41 鸽子飞扬 阅读(1983) 评论(14) 推荐(2) 编辑
摘要:注:本文仅针对 DiscuzNT3.0, sqlserver 2000版本,其他版本请勿对号入座.经过前面的几次优化之后我们的论坛终于稳定了一段时间,大概半年之后我们的论坛迎来了每天大约50万的pv,这时候论坛有开始出现了问题。症状是这样的:管理员发现,网站经常会打不开, 但是也不报错,好像永远一直在打开,直到浏览器认为它打不开了,这样的症状每天会出现几次,而且越来越频繁。每次发生这样的情况过后一般iis的事件查看器都会asp.net有死锁提示,于是我知道,我终于遇上传说中的死锁了,每次有死锁迹象的时候我都跟踪了一下sqlserver,发现数据库是正常的,那看来就是asp.net这边的问题了。 阅读全文
posted @ 2011-06-12 22:01 鸽子飞扬 阅读(1983) 评论(12) 推荐(3) 编辑
摘要:注:本文仅针对 DiscuzNT3.0, sqlserver 2000版本,其他版本请勿对号入座.在前两篇已经对看帖,发帖回帖做了优化,做过优化之后论坛访问起来果然顺畅多了。随着论坛帖子数的不断增加,论坛出现了一个新的问题,管理员在删帖的时候经常报错,超时,删除失败。由于有了之前的两次经验,现在找起问题来比之前要快多了,现在先找到删帖的存储过程dnt_deletetopicbytidlist3,脚本如下:ALTERPROCEDURE[dnt_deletetopicbytidlist3]@tidlistASVARCHAR(2000),@chanagepostsASBITASDECLARE@pos 阅读全文
posted @ 2011-06-06 15:18 鸽子飞扬 阅读(1028) 评论(14) 推荐(1) 编辑