Asp.net 性能监控之压测接口“卡住” 分析
问题描述:web api项目接口压测。前期并发100,500没出现问题,平均耗时也在几百毫秒。当并发1000时候,停留等待许久,看现象是jemeter卡住,没返回,时间过了许久,才正常。
解决过程:
查看服务器应用程序日志,查看项目全局捕获日志,查看服务器cpu,内存,网络。一切正常
查看客户端和服务端之间的Tcp连接:netstat -ano | find /c "***.***.***.***",连接一直处于通信状态一直没有释放。卡住剩余的连接数和没释放的连接数相同。好像有点端倪了,但是很模糊。
既然连接一直没有释放那么尝试把Tcp的timewait时间变短。修改注册表的配置。然而并没有什么用。
无头绪,只好加大监控力度。Windows performance Counters 。
运维搞了个Telegraf+Influxdb+Grafana,Telegraf的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 性能监控之压测接口“卡住” 分析的更多相关文章
- 实战jmeter入门压测接口性能
什么是Jmeter? 是Apache组织开发的基于Java的压力测试工具. 准备工作: 一.安装配置好环境及压测工具 Jmeter下载地址:http://mirrors.tuna.tsinghua.e ...
- 使用ab压测网页结果分析
使用ab压测网页结果分析 下载工具:ab 图片来自:http://my.oschina.net/u/1246814/blog/291696?fromerr=JfLeu1jk
- docker内存监控与压测
一直运行的docker容器显示内存已经耗尽,并且容器内存耗尽也没出现重启情况,通过后台查看发现进程没有占用多少内存.内存的监控使用的是cadvisor,计算方式也是使用cadvisor的页面计算方式, ...
- JMeter压力测试,http请求压测,5分钟让你学会如何压测接口!
JMeter压力测试 官网:https://jmeter.apache.org 最新款的jmeter需要java8的支持,所以请自行安装jdk8.这里就不啰嗦了. 可以根据自己的系统下载zip或者是t ...
- 压力测试(六)-阿里云Linux服务器压测接口实战
1.SpringBoot 接口打包,并用jar包方式部署 简介:用jar包方式在控制台进行启动 打包 mvn package && java -jar target/gs-spring ...
- Loadrunner11简单压测接口教程
一.需求 使用Loadrunner压测目标接口,要求支持1000并发数. 目标接口:https://www.xxx.com/digitaldata/api/signer/1.0/signerRegis ...
- [译]ASP.NET 性能监控
概述:在性能测试中性能监视器是非常强大的工具,本文主要简述了几个关键的计数器和相关的阈值. 监控性能计数器 很多的性能计数器在性能调优中是非常重要的,由于性能计数器太多,很多人不知道选择那些计数器. ...
- ASP.NET 性能监控和优化入门
关键要点: 只有与应用指标相关联,基础设施指标才能最大发挥作用. 高效性能优化的关键在于性能数据. 一些APM工具为ASP.NET提供了开箱即用的支持,这样入门使用ASP.NET仅需最小限度的初始设置 ...
- <转>二十问全链路压测干货汇总(上)
本文转载自:微信公众号-数列科技<二十问全链路压测干货汇总(上)> 最近几年全链路压测无疑成为了一个热门话题,在各个技术峰会上都可以看到它的身影. 一些大型的互联网公司,比如阿里巴巴.京东 ...
随机推荐
- logstash 修改配置不重启的方法
1.修改好yml配置 2.进入logstash 容器内,或服务器上 3.ps -ef | grep logstash 拿到进程号 4.kill -1 <pid> 5.logstash 会重 ...
- C# 互通操作 (二)基础知识1
[DllImport("user32.dll", EntryPoint = "MessageBox")] public static extern int De ...
- AX_CreateAndPostSales
static void CreateAndPostSales(Args _args) { List il = new List(Types::Record); SalesTable localSale ...
- 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 ...
- 一次性获取PPT图片方法
XXX.ppt 改成 XXX.zip 或者 XXX.rar 解压,查看文件夹即可
- 移动端布局:视口viewport的理解
移动端开发中,有一些基本概念需要理解清楚,才能更好的组织编程逻辑.在刚接触时,移动端视口的缩放和rem单位的缩放搞混淆了,弄得自己很蒙圈.所以仔细总结下自己的理解. 移动端的适配,我理解为两点: 第一 ...
- python3--迭代
判断一个对象是否能够进行迭代的方法 Iterable from collections import Iterable dict = {'name':'Joe','age':17} print (is ...
- 特征选择 (feature_selection)
目录 特征选择 (feature_selection) Filter 1. 移除低方差的特征 (Removing features with low variance) 2. 单变量特征选择 (Uni ...
- OpenGIS
OpenGIS(Open Geodata Interoperation Specification,OGIS-开放的地理数据互操作规范)由美国OGC(OpenGIS协会,Open Geospatial ...
- 快速入门Vue
前端技术发展很快,近日一个项目中想用Vue框架,对此对Vue基础进行了一些学习整理 何为Vue,官网 解释Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架 这里记录 ...