一个web应用程序,企业内部2000多人使用,出现了个怪问题,每天早上登陆起始页面输入密码的时候,总有拥挤的现象,难以登陆,当我重启服务器,或则停止IIS重启后就好了,基本上整天都不出问题了,我分析了一下log,出问题的时刻访问量并不大,才几十个人.其他的服务器上配置都差不多的web程序没发现这种问题.运行很正常
服务器配置IBM xSeries 366应该没问题,网络是刚架设的千兆网大家来分析一下该是什么造成的

解决方案 »

  1.   

    我以前有过,是程序上有问题,资源没有释放。还有是否有用COM组件呢?
      

  2.   

    出现这样的问题,最好的方法就是看日至。如果日至没有记载,那就比较麻烦了。阻塞的原因很多,包括应用程序阻塞,数据库阻塞,网络阻塞,如果你的应用程序运行一段时间特别有规律的就变慢,那很可能是你的系统中有不及时释放资源的地方,导致系统资源越占愈多。你阐述的问题是登陆时有拥塞,那么你登陆的时候并发行到底有多大,你的web服务器是一台还是处在场中,如果是一台,同时登陆几千人,性能肯定要下降。但你说的阻塞代表着系统在此之后产生死锁一样得效应,就是只要阻塞了,不重新启动服务器根本就无法在访问了。不知道你是不是这个意思,如果是那么你的应用程序登陆模块应该是用lock的地方,产生死锁,或者在数据库事务处理中出现问题。如果不是,就是应用程序在此时变得慢了,而高峰过后,系统恢复正常,那么说明你的应用程序最少在资源占用的问题没有出现不释放的地方,你可以将注意力转移到服务器系统配置上。首先检查IIS应用程序池的回收设置,如果无果,那你打开服务器的性能计数器,监视和你网站相关的计数器,如应用程序计数器,cache,详细情况,你可以到msdn上用asp.net性能关键字来查阅,通过对性能计数器的监视你就知道你的系统到底在变慢的时候,那个资源产生了瓶颈,特别在应用程序计数器莫名重新启动的时候,你找出计数器显示的异常,然后根据你具体的系统,判断何处使用了该资源,为什么会导致资源或者程序的异常,这样,顺藤摸瓜,应该能找出问题所在。
      

  3.   

    我分析了一下log,出问题的时刻访问量并不大,才几十个人.是并发?默认的数据库连接池是20,如果同时并发量大于20话,可能就会导致排队等待,可以尝试设置增大连接池。
      

  4.   

    如果是server 2003的话,几十人如果没有系统的问题或者服务器人为的误配置,根本不会出现并发的问题,一般如果上了1000以上,才会出现类似装状况.但然不排除服务器配置问题,搂主阐述在其他服务器上没有这种情况,那么你可以逐条比较出问题服务器与正常服务器配置有何区别.只要你能让病机恢复到正常机器的配置,问题就解决了/
      

  5.   

    尝试在IIS中做如下设置,限制数量,减少会话时间保存时间,增加相应时间;
    估计是你的程序问题,很有可能是没有释放数据资源。
    同时确认个问题:SqlServer默认的连接应该是100吧。
      

  6.   

    谢谢大家帮忙
    问题差不多解决了,又观察了3天左右,具体的应该不是资源释放的问题,每次写程序这方面还是注意很多的
    我们采去了很多措施,把web和数据库分开了,这个应该是主要原因
    另外把连接池数量也加大了很多,本来默认是打开的,没有管它,这次没办法,试着加大很多to greennetboy:连接池默认的是100