+ -
当前位置:首页 → 问答吧 → Asp.net 应用程序 多用户阻塞现象,救急

Asp.net 应用程序 多用户阻塞现象,救急

时间:2010-06-16

来源:互联网

问题症状:我有个Asp.net 应用程序,II7(windows web server 2008,4核,4g内存),集成模式(经典模式也试过),主要是定时(15秒间隔刷新用户,取数据等,5个xmlhttp远程调用aspx)刷新页面,访问后台数据库(mssql),显示在前台(取坐标显示在地图上,地图是另外服务器上的,地图调用是ascx),只要是一个用户出现卡住现象(IE不刷新),页面不动,其他用户(才2,3个用户不同计算机登陆)也卡住(可以是不同页面),几分钟后才好(期间cpu也低:3%,内存正常),奇怪的事我试过多用户登陆,几台机器开十几个ie,都没事,但是远程用户使用时多数就可能有问题(少时也没问题)。
  我按照网络上“web.config和machine.config解决 IIS Server Too Busy”修改了web.config machine.config增加了线程数等,改为<processModel maxWorkerThreads="200" maxIoThreads="200"/>,修改了asp.net.config,web.config 设置了数据库连接池,timeout改小等,卡的时间变短了,还是卡。
  前面发帖子说可能是数据库死锁,阻塞,我修改了前后台的sql语句,改成select with(nolock)update with(rowlock),数据库操作换成异步,按照网上的在注册表中修改了MaxConcurrentRequestsPerCPU=5000,无效。
  主页面是多frame的,有按照网上的“session引起阻塞”在aspx中加了“sessionstate=“readonly””,还是无效,又重新发不成另一个网站(完全一样的程序,当然在同台服务器上),发现当一个网站(多用户登陆)出现老问题时,这个网站速度正常(一个用户登陆),不受影响(应该是不同进程),他们是同样的后台(一台服务器),我想可以排除ii7和后台mssql的问题了(就是不会是数据库死锁等原因),就是在一个iis进程出现阻塞,但再开一个就不影响(本来不该影响),但问题到底在哪,不知道其他人是否遇到相同情况,望高手支招,
以下是性能计数器的显示,卡的时候红线更低平,长度(持续30秒左右),不知该图形是否正常。

作者: geoman2070   发布时间: 2010-06-16

地图是另外服务器上
-----
这个也不能排除是可能的原因。检查测试看看。

作者: theforever   发布时间: 2010-06-16

作者: lds1ove   发布时间: 2010-06-16

是不是用同步了,改成异步试试

作者: qq43695548   发布时间: 2010-06-16

应该是系统架构的问题吧....

作者: mrshelly   发布时间: 2010-06-16

谢谢关注,不知性能计数器的显示对不对,我才2个用户,15秒刷新一次,"Request execution time " is too long?

作者: geoman2070   发布时间: 2010-06-16

单说你们的程序的话,应该不会这么垃圾吧,呵呵。
所以找个网管先从网络和硬件还有服务器设置方面好好检查一下。

作者: theforever   发布时间: 2010-06-16

我也觉得很奇怪,数据库的死锁在计数器中没检测到,

作者: geoman2070   发布时间: 2010-06-18

所谓的卡大概多少时间能返回结果呢?

从你的性能日志来看,Request Excution Time平均才100多毫秒,还是很快的啊,有什么问题呢?

作者: archu   发布时间: 2010-06-18

你好,有没有解决啊,解决了说一下,我现在也遇到这种随机出现的卡一下的现象,卡的时候,其他页面也打不开卡住,不卡了其他页面同时正常。卡的时候,我看服务器端CPU 内存都不存在异常,SQL事件跟踪也没发现异常慢的SQL语句,你那个地图应该也是调用WEB服务吧,我那个页面上也要调用2个不同的WEB服务,我有点怀疑是调用WEB服务引起的。

作者: dsfmt   发布时间: 2010-09-11