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】),其次配置合理的最大进程数。
转载于:https://www.cnblogs.com/TeemoHQ/p/9856919.html
Asp.net 性能监控之压测接口“卡住” 分析相关推荐
- 48张图|手摸手教你性能监控、压测和调优
本文主要内容 一.何为压力测试 1.1. 大白话解释 性能压测是什么:就是考察当前软件和硬件环境下,系统所能承受的最大负荷,并帮助找出系统的瓶颈所在. 性能压测的目的:为了系统在线上的处理能力和稳定性 ...
- linux压测接口工具,jmeter压测工具
一.目录文件讲解 目录 bin:核心可执行文件,包含配置 mac/linux:使用jmeter启动 windows:使用jmeter.bat启动 jmeter-server:mac/linux分布式压 ...
- 性能优化与压测引擎一:压测框架gatling
性能优化与压测引擎一:压测框架gatling 压测框架gatling 简单使用介绍 压测框架gatling 说到压测,我们最熟悉的可能就是ab命令和jmeter了,确实他们很方便,但是我最近都在用另外 ...
- 性能优化与压测引擎二:分布式压测引擎pea
性能优化与压测引擎二:分布式压测引擎pea 分布式压测引擎pea 基本介绍 视频演示 创建任务 任务执行中的节点状态 整体报告 单个请求细节报告 分布式压测引擎pea 前面介绍了gatling是铺垫, ...
- 压测接口线程数设置_ZAT掌门性能压测巡检系统实战和落地
项目背景 随着业务拓展,对于接口性能的要求也在上升,各部门也开始针对部分慢接口进行优化,从测试角度针对这些优化需求进行测试时不仅要保证对应接口的功能正常使用同时也要验证接口优化成果.在日常的开发工作中 ...
- linux tcp压测工具,02.监控和压测工具 - 2.4.压测工具 - 《Linux性能调优指南》 - 书栈网 · BookStack...
压测工具其它有用工具 在这里,我们会讨论主要的压力测试工具,选择合适的压测工具,才能准确衡量系统性能.好的压测工具有很多,可能的功能如下: 发起压力 监控性能 监控系统使用率 生成报告 基准测试无非就 ...
- 蚂蚁集团技术专家山丘:性能优化常见压测模型及优缺点
陈显铭(山丘) 读完需要 6 分钟 速读仅需 2 分钟 陈显铭,花名山丘,就职于蚂蚁集团,对分布式应用架构.服务化.性能优化等有深入的理解.参与支付宝支付链路核心系统,设计.调优应用系统关键能力, 高 ...
- mysql笔记(锁、事务、性能优化、压测结果)
Mysql 该笔记,主要根据kkb课程并结合网上资料和自己的理解而形成. 一.Mysql架构 1.1 逻辑架构 这是从网上copy过来的图.网上一些教程会把mysql也进行分层. 连接层:Connec ...
- wrk 使用lua脚本进行压测接口请求
lua脚本是一种轻量小巧的脚本语言,用标准c语言编写,并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为程序提供灵活的扩展和定制功能.wrk工具嵌入了lua脚本语言,因此,在自定义压测场景时, ...
最新文章
- MVC 源码系列之路由(一)
- minecraft正版整合包服务器,我的世界1.7.2基佬整合包
- 信息学奥赛C++语言:尼克的岁数
- UI设计配色专辑素材|简易完成色彩协调性!
- 计算机二级vb操作题如何给分,计算机二级vb操作题.docx
- 2017-9-5-Java 泛型
- JS规则 自加一,自减一 ( ++和- -) 【mynum = mynum + 1;//等同于mynum++;】
- 用批处理开启或关闭windows 服务
- 高斯——拉盖尔积分法和高斯——勒让德积分法求积分
- 动态RAM(64K*1)INTEL2164简介(抄自原理图)
- iphonex 底部遮挡返回键 解决方法
- python fpdf中multi_cell实现自动换行
- 【亲测已解决】CentOS7 ifconfig commend not fount(命令找不到)
- 《23种设计模式之单例模式(4种实现)》
- testlink mysql配置_testlink安装及配置
- YOLO v2论文笔记
- STC89C52RC控制WS2812B LED 调色调光(一)
- Unity学习记录:使用触发器制作人物靠近物体后交互的方法
- 网易互联网网易游戏产品经理面试经验
- 无胁科技-TVD每日漏洞情报-2022-11-21