2011年3月12日星期六

几处潜在问题造成了一次灾难性事件

最近没有怎么上最成都,服务器也一直放那里没出什么问题。但是经常有同学给我说访问慢,没办法访问等等。用IE访问的确有问题,但是用手机访问WAP没问题。没办法上了服务器去看,也看不到什么道道出来,只能定位应用程序池出了问题,导致跑网页的站点挂住了,其余的完全没有什么进展。错误一直没有消失,大家也忍受着时不时的抽筋,让无数人十分郁闷。

今天吃完饭又收到短信说服务器抽筋了,郁闷的上去看看,服务器资源占用十分少,但是就是应用程序池卡死,查看日志,有一个/weather/weather.asp的错误,这是服务器端去抓取google.com的天气预报的程序,这会有什么错误呢?大脑里面突然闪现了之前搜索到的一个可能的问题——在IIS6服务器端xmlhttp请求无效的情况下会导致asp卡死。难道就是这里?立马拿google.com请求url去IE里面访问,的确如我所料,浏览器没有收到404,没有收到500,一直在请求状态,导致了IE停滞,问题终于找到了,原来在这里。总结一下几个潜在的问题:

1:xmlhttp目录所在的应用程序池和主程序公用一套,导致xmlhttp卡死的时候,主程序跑不动。

2:超时时间过长,虽然设置了xmlhttp的超时,完全无效。

3:没有设置客户端缓存或者服务器端缓存,导致每个请求都会去重复请求一次,大量的无效请求集中累积在那里,导致服务器直接卡死。

这几个故障点一加导致了莫名其妙的灾难出现了。汗一个。

找到了问题要改就十分简单了,把xmlhttp移出到单独应用程序池,减少asp超时时间,做客户端缓存(不想修改数据,暂时不做服务器端缓存了)。

这几点一改,服务器马上活过来了,就连ping的速度都快了很多。

第一个,我要诅咒瓷器镇的墙,让google访问都不正常;第二个,以后做东东,能做缓存的一定要做好缓存,节约资源也低碳;第三个,asp真该淘汰了。

没有评论:

发表评论