首页 新闻 会员 周边 捐助

http post请求WebService地址5%的概率需要3秒上的响应时间,需要控制到0.5%内,各位大侠来点意见

0
悬赏园豆:260 [已解决问题] 解决于 2018-03-28 11:22

有个对响应时间要求很高的WebService接口,必须要3秒内响应,现在的情况测试得到超过3秒响应大概占5%左右。

用fiddler抓包工具测试发现一个问题如下:

服务器收到请求->服务器开始响应的耗时  大概就是这5%里面的重要原因

基本代码如下:

然后记录日志为:

[19:32:59]可用性查询进入

[19:32:59]可用性查询开始,参数:

 

可以看出来抓包工具的服务器开始响应之后才进入到我的代码里面,写了第一段日志

我现在困惑的是这个:服务器收到请求->服务器开始响应  这3秒钟花在哪了,可以如何解决

破晓幽灵的主页 破晓幽灵 | 初学一级 | 园豆:41
提问于:2018-03-26 20:04

建议使用Wireshark抓包

dudu 6年前

@dudu: 我查了资料,Wireshark主要用于TCP之类的协议抓包,HTTP/HTTPS的用fiddler比较合适

破晓幽灵 6年前
< >
分享
最佳答案
0

服务器开始响应应该是web service中的代码执行完成了,你可以试试在web service方法中直接return,然后测试一下响应速度

收获园豆:250
dudu | 高人七级 |园豆:30559 | 2018-03-26 21:31

你没看明白我上面的意思,我的代码一开始就是写日志了,但是按照抓包记录,是卡主了3秒之后才进入到我的web service方法中写了第一条日志,这个跟执行代码没关系,还没到执行代码的就已经卡主了3秒了,这3秒时间现在是不知道干嘛了

破晓幽灵 | 园豆:41 (初学一级) | 2018-03-27 09:46

@破晓幽灵: 建议在 Global.asax.cs 的 Application_Start 中也记一下日志

dudu | 园豆:30559 (高人七级) | 2018-03-27 09:58

我刚刚按照你的说的加了一个测试方法直接return,还是一样的结果时间全部卡在:服务器收到请求->服务器开始响应上了,下面是截图:

破晓幽灵 | 园豆:41 (初学一级) | 2018-03-27 10:37

@dudu: Global.asax.cs 的 Application_Start  也只是在第一次访问的时候会执行一次,只要不是间断很久不访问或不回收应用程序池基本不会进入这里的,跟这里关系不大

破晓幽灵 | 园豆:41 (初学一级) | 2018-03-27 18:29

@破晓幽灵: 不好意思,当时写错了,应该是 Application_BeginRequest

dudu | 园豆:30559 (高人七级) | 2018-03-27 18:42

@dudu: Application_BeginRequest 这个里面是空的 什么都没写,这个我最优先就检查了的

破晓幽灵 | 园豆:41 (初学一级) | 2018-03-27 18:51

@dudu: 看下

破晓幽灵 | 园豆:41 (初学一级) | 2018-03-27 18:52

@dudu: 我换成handler的方式也是一样慢,我原以为是web service收到请求之后需要解析路由到具体的方法可能耗时,我把一样的代码换成handler也慢,同样是卡在:服务器收到请求->服务器开始响应上了,但是我在相同的目录下放一个html静态页面就非常快

破晓幽灵 | 园豆:41 (初学一级) | 2018-03-27 18:54

@破晓幽灵: 站点是在VS中运行的还是在IIS中运行的?

dudu | 园豆:30559 (高人七级) | 2018-03-27 19:22

@dudu: IIS的,问题基本解决了,感谢老大的提点,虽然解决的途径跟你说的关系不大,嘿嘿,非常感谢!!非常感谢!!!

破晓幽灵 | 园豆:41 (初学一级) | 2018-03-28 11:13
其他回答(6)
0

裸奔?

如果有session卡住那么也有可能卡住。或者数据库锁了?

收获园豆:2
[秦时明月] | 园豆:738 (小虾三级) | 2018-03-26 22:10

你没看明白我上面的意思,我的代码一开始就是写日志了,但是按照抓包记录,是卡主了3秒之后才进入到我的web service方法中写了第一条日志,这个跟执行代码没关系跟数据库更没关系,还没到执行代码的就已经卡主了3秒了,这3秒时间现在是不知道干嘛了

支持(0) 反对(0) 破晓幽灵 | 园豆:41 (初学一级) | 2018-03-27 09:46
0

你的日志是同步写还是异步写的?会不会是写日志造成的呢?

收获园豆:3
爱编程的大叔 | 园豆:30844 (高人七级) | 2018-03-27 09:56

跟日志无关,我有测试,用一个最简单的方法测试也是很慢,访问同域名下面的静态页面很快

支持(0) 反对(0) 破晓幽灵 | 园豆:41 (初学一级) | 2018-03-27 15:03
0

这个问题应该不麻烦,但是需要具体的一步步的分析,就你提供这点信息,不好快速的跟踪,具体看你的http的begin 和end 期间都做了什么逻辑,如果有和网络通信,比如读写数据库,文件读写,tcp通信,非托管资源的使用……

建议你把从http 的begin和end 之间的大概都做了什么事情能表述清楚的,仅供参考!

收获园豆:3
Angkor--:-- | 园豆:1086 (小虾三级) | 2018-03-27 09:59

http 的begin和end 之间什么都没做

支持(0) 反对(0) 破晓幽灵 | 园豆:41 (初学一级) | 2018-03-27 17:18
0

基本大概很可能就是写日志引起的,换成异步写日志,再看

收获园豆:2
西漠以西 | 园豆:1675 (小虾三级) | 2018-03-27 10:57

我用一个只有返回的方法测试也是慢,跟日志/数据库这些无关

支持(0) 反对(0) 破晓幽灵 | 园豆:41 (初学一级) | 2018-03-27 17:17
0

问题已搞定,问了一个大牛专家,瞬间点破了,昨晚上已经基本处理好了,感谢各位仁兄大侠的提点!!!

破晓幽灵 | 园豆:41 (初学一级) | 2018-03-28 11:15

说说怎么解决的呀,我也遇到了

支持(0) 反对(0) 泥土桥③号 | 园豆:114 (初学一级) | 2019-10-18 17:06

大哥看到后能说说怎么解决的吗?

支持(0) 反对(0) 泥土桥③号 | 园豆:114 (初学一级) | 2019-10-18 18:54
0

楼主太不厚道。
发文讨教,别人来一起分析,最后解决了也不说如何解决的,问题在哪。实际上也是问专家,专家指点的。那专家为何要指点你呢。
怕别人也知道了,太小气

81 | 园豆:112 (初学一级) | 2019-10-25 10:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册