« 上一篇下一篇 »

排除一起服务器CPU100%负载的故障

这一个月,天台之窗的服务器CPU负载不时100%,网站无法正常访问。其间一直在找原因所在。查进程,是一个w3wp占了主要的负载,也就是WWW服务,说明是IIS的问题,初步判断是某个网站的代码有问题,运行这个代码后,不停地读取数据库,其中可能造成死循环而占用大量的CPU资源。
    由于以前曾出现计数器数据库增大出现CPU100%的情况,首先从ACCESS数据库着手,看看服务器里有没有ACCESS数据库特别大的,查出所有的ACCESS数据库,都不算大,把每个数据库整理压缩了一遍回传,结果一样,没有变化。
    由于天台之窗是门户网站,不能停止运行,而整台服务器有近70个网站,要找到真正的原因并不容易,先是在CPU100%时,停止了某一个网站来看CPU的变化,结果没有什么变化,把所有的ASP网站都停过试过,没能找出问题的网站。
    问题总得解决,自己可能技术不行,请IDC服务提供商来做吧,付了钱,请他们做,他们检查了好久,也找不出问题所在,他们的技术手段并不比我多多少,据说公司所有的技术人员都进这个服务器瞧过了。一客服说让我换系统,把2003换成2000,还说2000的安全性比2003好,我却是很不认同这客服的说法。好在我在去年系统完全正常时做过克隆,于是昨天晚上11点过后,用克隆恢复了系统,在恢复各种数据后,由于是深夜,访问的人很少,系统正常。
    今天早上一看,还是老样子。说明系统没有问题,肯定是网站代码的问题。早上我就没法干别的事,一直守着服务器,不时CPU100%占用,杀了那个进程,几秒钟后又不行了。
    分析:服务器虽然有70个网站,但大量的企业网站并没有什么访问量,天台之窗的访问量应该是占绝大部分的资源的,估计问题在天台之窗。只有天台之窗首页才访问这么频繁,问题可能就在天台之窗首页。首页的调用太多可能是问题所在,一数,有8个调用。也就是每访问一次首页就会8次访问数据库,做8个调用,肯定占用资源,虽然以前也有差不多的调用而没出事,可能是修改过代码后出现的问题。顺着这个思路,把用ASP调用好的网页,生成新的源代码,另存为HTM格式,上传到服务器作为首页文件,这样首页就没有数据库调用了,只是链接,没有了调用就减少了资源的占用。
  自从改了以后的6个小时,就没有出现100%的情况,也没有再出现堵死的情况。
  以前有时个整半天进不了,所以访问量直线下降 现在偶尔峰值有100%,不会超过1秒。
  唉,这个东东不解决,春节别想玩。 现在终于松一口气了,相信访问量也会上去。
  这IDC服务商也真是没用,他们真的不太懂,只是我的钱就这样打了水漂。

 2007-1-25