问题描述: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. logstash 修改配置不重启的方法

    1.修改好yml配置 2.进入logstash 容器内,或服务器上 3.ps -ef | grep logstash 拿到进程号 4.kill -1 <pid> 5.logstash 会重 ...

  2. C# 互通操作 (二)基础知识1

    [DllImport("user32.dll", EntryPoint = "MessageBox")] public static extern int De ...

  3. AX_CreateAndPostSales

    static void CreateAndPostSales(Args _args) { List il = new List(Types::Record); SalesTable localSale ...

  4. Moving or disabling the package cache for Visual Studio 2017

    Moving or disabling the package cache for Visual Studio 2017 | Setup & Install by Heath Stewart ...

  5. 一次性获取PPT图片方法

    XXX.ppt 改成 XXX.zip 或者 XXX.rar 解压,查看文件夹即可

  6. 移动端布局:视口viewport的理解

    移动端开发中,有一些基本概念需要理解清楚,才能更好的组织编程逻辑.在刚接触时,移动端视口的缩放和rem单位的缩放搞混淆了,弄得自己很蒙圈.所以仔细总结下自己的理解. 移动端的适配,我理解为两点: 第一 ...

  7. python3--迭代

    判断一个对象是否能够进行迭代的方法 Iterable from collections import Iterable dict = {'name':'Joe','age':17} print (is ...

  8. 特征选择 (feature_selection)

    目录 特征选择 (feature_selection) Filter 1. 移除低方差的特征 (Removing features with low variance) 2. 单变量特征选择 (Uni ...

  9. OpenGIS

    OpenGIS(Open Geodata Interoperation Specification,OGIS-开放的地理数据互操作规范)由美国OGC(OpenGIS协会,Open Geospatial ...

  10. 快速入门Vue

    前端技术发展很快,近日一个项目中想用Vue框架,对此对Vue基础进行了一些学习整理 何为Vue,官网 解释Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架 这里记录 ...