问题描述:web api项目接口压测。前期并发100,500没出现问题,平均耗时也在几百毫秒。当并发1000时候,停留等待许久,看现象是jemeter卡住,没返回,时间过了许久,才正常。

解决过程:

查看服务器应用程序日志,查看项目全局捕获日志,查看服务器cpu,内存,网络。一切正常

查看客户端和服务端之间的Tcp连接:netstat -ano | find /c "***.***.***.***",连接一直处于通信状态一直没有释放。卡住剩余的连接数和没释放的连接数相同。好像有点端倪了,但是很模糊。

既然连接一直没有释放那么尝试把Tcp的timewait时间变短。修改注册表的配置。然而并没有什么用。

无头绪,只好加大监控力度。Windows performance Counters 。

运维搞了个Telegraf+Influxdb+GrafanaTelegraf的counters配置 地址,当然也可以选择cmd运行perfmon查看windows自带的性能监视器。

发现压测时候Request Queue突然增加很多,Requests/Sec下降,

查找资料,看到博客园团队在14年就遇到相似问题:云计算之路-阿里云上:从ASP.NET线程角度对"黑色30秒"问题的全新分析

还有一篇外文说的更加详细,很多监控细节都有说明。地址。         修改了ProcessModel之后压测果然不会出现卡住的情况

大致意思就是:瞬间的并发请求太多,Asp.net预留线程不够,Asp.net来不及创建足够新的线程。

当然这个可以配置:machine.config中的processModel(位于C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config)

注意:ProcessModel这个配置在项目的web.config也可以智能提示出来,但是配置了也无效。只能在machine配置。说明地址

其次。还有解决办法,把IIS项目的应用程序池 进程数量调大,把队列长度也调大。并发压测的时候先预热请求几个接口让进程都起来先。

虽然不会卡,但是物极必反。太多进程同时跑起来,CPU一下子就上去了。(图中在14:02和14:05设置的进程数量不同)。

疑问:修改的ProcessModel的配置是全局的,不能单个项目配置,那么一台服务器是多个项目,会不会有影响

最终修改方法:优化接口业务代码(辛亏还可以优化【HttpWebRequest的DefaultConnectionLimit】),其次配置合理的最大进程数。

Asp.net 性能监控之压测接口“卡住” 分析的更多相关文章

  1. 实战jmeter入门压测接口性能

    什么是Jmeter? 是Apache组织开发的基于Java的压力测试工具. 准备工作: 一.安装配置好环境及压测工具 Jmeter下载地址:http://mirrors.tuna.tsinghua.e ...

  2. 使用ab压测网页结果分析

    使用ab压测网页结果分析 下载工具:ab 图片来自:http://my.oschina.net/u/1246814/blog/291696?fromerr=JfLeu1jk

  3. docker内存监控与压测

    一直运行的docker容器显示内存已经耗尽,并且容器内存耗尽也没出现重启情况,通过后台查看发现进程没有占用多少内存.内存的监控使用的是cadvisor,计算方式也是使用cadvisor的页面计算方式, ...

  4. JMeter压力测试,http请求压测,5分钟让你学会如何压测接口!

    JMeter压力测试 官网:https://jmeter.apache.org 最新款的jmeter需要java8的支持,所以请自行安装jdk8.这里就不啰嗦了. 可以根据自己的系统下载zip或者是t ...

  5. 压力测试(六)-阿里云Linux服务器压测接口实战

    1.SpringBoot 接口打包,并用jar包方式部署 简介:用jar包方式在控制台进行启动 打包 mvn package && java -jar target/gs-spring ...

  6. Loadrunner11简单压测接口教程

    一.需求 使用Loadrunner压测目标接口,要求支持1000并发数. 目标接口:https://www.xxx.com/digitaldata/api/signer/1.0/signerRegis ...

  7. [译]ASP.NET 性能监控

    概述:在性能测试中性能监视器是非常强大的工具,本文主要简述了几个关键的计数器和相关的阈值. 监控性能计数器 很多的性能计数器在性能调优中是非常重要的,由于性能计数器太多,很多人不知道选择那些计数器. ...

  8. ASP.NET 性能监控和优化入门

    关键要点: 只有与应用指标相关联,基础设施指标才能最大发挥作用. 高效性能优化的关键在于性能数据. 一些APM工具为ASP.NET提供了开箱即用的支持,这样入门使用ASP.NET仅需最小限度的初始设置 ...

  9. <转>二十问全链路压测干货汇总(上)

    本文转载自:微信公众号-数列科技<二十问全链路压测干货汇总(上)> 最近几年全链路压测无疑成为了一个热门话题,在各个技术峰会上都可以看到它的身影. 一些大型的互联网公司,比如阿里巴巴.京东 ...

随机推荐

  1. CSS碎片

    1.外边距不会应用到行内非替换元素的顶端和底端,因为不会改变它的行高,所有没有视觉效果. 而行内非替换元素上下内边距虽然也不改变行高,但却能延伸背景,所有背景可见,可能会重叠其他行. span{mar ...

  2. 使用JS在页面进行数据处理时显示等待画面

    使用js在页面进行数据处理期间显示等待画面: 在页面选择执行函数进行数据处理期间,显示等待画面. <script> function fun(the,row_id) { //测试函数 // ...

  3. 代码简洁的滑动门(tab)jquery插件

    < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org ...

  4. Python 3.6版本中实现 HTMLTestRunner输出时”fp=file(filename,'wb')“报错

    原错误代码: if __name__=='__main__': suite=unittest.makeSuite(WidgetTestCase) filename='D:\\myreport.html ...

  5. matplotlib中color可用的颜色

    http://stackoverflow.com/questions/22408237/named-colors-in-matplotlib 参考网址给出了matplotlib中color可用的颜色: ...

  6. 0.计划用libgdx写一个六边形回合制slg兵棋游戏

    题主层是一个e社游戏迷,但是因为国家政策,e社已经放弃了中国市场,所以决定自己来做,暂时当一个副业 大致计划: 1,先完成一个类似将军的荣耀的战旗游戏 2.再在其基础上制作一个钢铁雄心或世2 3.然后 ...

  7. idea安装了Mybaits Plugin插件后,启动不起来了

    之前安装了一些插件,谁知道重启完了之后,直接启动不起来了,报错信息如下: cannot load project fatal error initializing plugin com.seven7. ...

  8. 单点登陆cas

    1.TGC:Ticket-granting cookie,存放用户身份认证凭证的cookie,在浏览器和CAS Server间通讯时使用,是CAS Server用来明确用户身份的凭证.TGT封装了TG ...

  9. 哈夫曼(Huffman)树和哈夫曼编码

    一.哈夫曼(Huffman)树和哈夫曼编码 1.哈夫曼树(Huffman)又称最优二叉树,是一类带权路径长度最短的树, 常用于信息检测. 定义: 结点间的路径长度:树中一个结点到另一个结点之间分支数目 ...

  10. PID control

    |—平滑化算法 |—PID控制—|—P控制器编程 |—PD控制编程 |—PID控制编程 |—参数优化 |—实验P.PD.PID对减小系统误差的作用 这里讨论怎么将路径转变成行动指令(生成平滑的路径), ...