当前位置: 首页 > article >正文

性能测试监控与诊断

我们依据一个HTTP请求处理的过程,采用主流的J2EE技术栈,如下图所示

图片

1>用户的请求通过网卡传送到服务器(中断信号),用户与服务器简历TCP/IP链接。也就是产说的TCP三次握手。既然是链接,就有限制,有限制就会有性能风险。在此我们可以监控网络IO的流量,网络中断,网络连接数来分析网络状况。

2>用户请求发送到监听端口(中间件的端口),中间件帮我们实现了通信及端口监听功能。就像我们去热门餐馆吃饭,排队是常态,此时通常会有有一名接待人员帮我们发号。如果用户请求过多,中间件是不是也需要一个类似的机制帮助维护请求队列?

没错,中间件有这个功能,甚至像餐厅的接待人员不止一名,也可以是多名。在此我们可以监控请求的连接数,当前链接的状态来分析繁忙程度,导致链接跟踪数据来分析线程的处理过程。

3>中间件把请求构造成HttpServletRequest对象。程序员开发的程序HttpServletRequest来识别用户的请求。例如用户要保存数据,在此可以监控到请求的整个处理时间。

4>程序处理完请求返回一个HttpServletRequest对象,然后中间件处理剩余的工作,把处理完的结果回传给用户。如果程序处理的比较慢,请求资源不断进来,TCP/IP连接数会被塞满,先请求的用户等待响应,后请求的用户根本连不上,这种情况如何处理呢?

连接池,异步IO就产生了。在此可以监控连接数及线程状态。

5>如果请求的数据内存中没有,优先从缓存中获取。我们知道磁盘读写是物理操作,大量读写自然效率不高。因此我们监控到大量的IO,特别是磁盘的IO时,通常都会有优化的可能。在此可以监控磁盘的IO,内存的使用状态,分析构成IO的程序,从而找到问题的所在。

6>如果请求的数据需要从数据库中获取,又恰好数据库在另外一台服务器上,程序会请求数据库连接,连接当然是需要经过网卡的,这就又面临一个连接数据的限制问题了。在此可以监控数据连接的数据量,状态,帮助分析数据库的繁忙程度。

7>数据库的数据查询与存储就涉及数据库的读取与存储机制,我们需要监控诊断数据库;就是我们常说的SQL执行计划分析,缓存分析,IO分析;SQL优化,结构优化。

不管是中间件或者是程序,都是要消耗CPU资源的。CPU从内存中获取数据进行运算,内存是有限的,内存资源的紧缺会导致CPU等待,内存资源紧张又可能是内存被占用过多或者内存无法收回。

如果CPU要获取的数据不在内存中,就会从磁盘中读取,磁盘读取相对内存读取在时间上是有很大差距的,CPU会产生IO等待。

由此可见CPU,内存,IO(磁盘IO及网络IO)是相互影响的。有时候某一个资源的瓶颈也许是另外一个资源的瓶颈导致的。木桶的理论告诉我们,一个团队的能力是有短板决定的,牵一发而动全身。

我们通过监控关键性指标来定位程序问题,发挥计算机的长处,弥补或绕过短处来提高系统性能。

图片

阅读后若有收获,不吝关注,分享,在看等操作!!!


http://www.kler.cn/a/516140.html

相关文章:

  • 计算机毕业设计hadoop+spark+hive图书推荐系统 豆瓣图书数据分析可视化大屏 豆瓣图书爬虫 知识图谱 图书大数据 大数据毕业设计 机器学习
  • XX污水处理厂基于RK3576核心板应用(四)——人员倒地智能识别系统方案
  • 回归人文主义,探寻情感本质:从文艺复兴到AI时代,我的情感探索之旅
  • 使用飞桨AI Studio平台训练数据,并进行图像识别分析得牡丹花测试
  • ubuntu k8s 1.31
  • Codeforces Round 1000 (Div. 2)(前三题)
  • ARM64平台Flutter环境搭建
  • EF Core 乐观、悲观并发控制
  • spring-springboot -springcloud
  • Sophon边缘盒数据校验及量化
  • Java拓展学习——Process类的学习和使用
  • mysql 计算2个时间段之间的间距
  • 差分轮算法-两个轮子计算速度的方法-阿克曼四轮小车计算方法
  • 从新手到高手的蜕变:MySQL 视图进阶全攻略
  • 不使用 JS 纯 CSS 获取屏幕宽高
  • 单片机内存管理剖析
  • 【Python模块】使用sys.path查看当前的模块搜索路径
  • Spring AOT
  • 2025-1-20-sklearn学习(42) 使用scikit-learn计算 钿车罗帕,相逢处,自有暗尘随马。
  • Linux网络之TCP
  • GOAT‘S AI早鸟报Part10
  • MFC程序设计(三)MFC程序启动
  • 动态路由协议基础知识
  • JavaScript系列(42)--路由系统实现详解
  • 2025.1.20——二、buuctf BUU UPLOAD COURSE 1 1 文件上传
  • 详解单片机学的是什么?(电子硬件)