2 pfkfengyun pfkfengyun 于 2014.01.20 12:05 提问

求助:iis下的C# webservice部分请求不知道哪里卡住了,cpu很高,处理时间很长

一个app的服务器端,使用的是C# webservice,部署在IIS下。service业务比较简单,基本就是操作另一个远程的数据库。

客户端反映调用service请求时,有时候会很久才返回(十几秒甚至几十秒,直到超时)。查看iis的“工作进程”,发现时不时会出现一些请求“经过的时间”很长,正常的请求只要毫秒级就能处理完,但是有些请求时间很不正常,如下图所示:
CSDN移动问答

当高峰期的时候,这类请求就会全部堆积在一起,直到连接池爆满。这个时候就基本不能提供服务了如下图:
CSDN移动问答

当请求正常的时候,机器cpu一般在5%以下,但是当出现上面的时间很久的请求,cpu会很快飙升到50%~90%,无论请求数有多少(一两个也会)。

已基本排除数据库的问题。出现这种情况的时候,数据库没有任何阻塞或者死锁的线程,查看数据库统计各条sql的执行时间也很正常(毫秒或微秒级)。

另外,我在服务器每个service接口(总共10个左右)的入口和返回之前,加入时间点,统计每个service调用的时间,但是发现所有的请求时间都不超过1s。所以工作进程里显示的使用时间很可能根本是webservice代码运行使用的时间。

搞了好几天了,还没找到具体的原因。希望各位前辈指点一下可能是哪里的问题,可以从哪些方面尝试解决?万分感激!

1个回答

liuxingfffff
liuxingfffff   2014.01.20 16:35

您查看的图片来自网易相册。

pfkfengyun
pfkfengyun 您那里看不到图片吗?奇怪,我把网址复制到几个浏览器都能看到。
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!