问题描述
- 求助:iis下的C# webservice部分请求不知道哪里卡住了,cpu很高,处理时间很长
-
一个app的服务器端,使用的是C# webservice,部署在IIS下。service业务比较简单,基本就是操作另一个远程的数据库。客户端反映调用service请求时,有时候会很久才返回(十几秒甚至几十秒,直到超时)。查看iis的“工作进程”,发现时不时会出现一些请求“经过的时间”很长,正常的请求只要毫秒级就能处理完,但是有些请求时间很不正常,如下图所示:
当高峰期的时候,这类请求就会全部堆积在一起,直到连接池爆满。这个时候就基本不能提供服务了如下图:
当请求正常的时候,机器cpu一般在5%以下,但是当出现上面的时间很久的请求,cpu会很快飙升到50%~90%,无论请求数有多少(一两个也会)。
已基本排除数据库的问题。出现这种情况的时候,数据库没有任何阻塞或者死锁的线程,查看数据库统计各条sql的执行时间也很正常(毫秒或微秒级)。
另外,我在服务器每个service接口(总共10个左右)的入口和返回之前,加入时间点,统计每个service调用的时间,但是发现所有的请求时间都不超过1s。所以工作进程里显示的使用时间很可能根本是webservice代码运行使用的时间。
搞了好几天了,还没找到具体的原因。希望各位前辈指点一下可能是哪里的问题,可以从哪些方面尝试解决?万分感激!
解决方案
您查看的图片来自网易相册。
时间: 2024-09-28 22:01:13