看过这篇《性能分析流程》后,和面试官聊天都有底气了!!!

性能分析流程

性能这块,就好比屌丝想追白富美(暂且不说这个白富美的年龄,)…一直在YY的状态!!
但是对于屌丝来说,最不害怕的是啥,就是不要脸~ ~
所以,为了能咸鱼翻身,为了能少奋斗三十年,
更为有底气对阿姨说:阿姨,我不想努力了~ ~

所以,
屌丝也开始了"奋发图强"。
在这里插入图片描述
我们常见的系统架构,大体可分为3部分:
web服务
APP服务
DB服务

如下图,传统架构
在这里插入图片描述
所以,我们要分析的性能无非就是分析这3部分,
Web服务、APP服务一般运行在中间件上,
中间件与DB运行在操作系统上,
操作系统来管理计算机硬件设备(如 CPU、内存、磁盘、网卡等)。
小鱼:小屌丝,我这样一列举,是不是觉得,白富美也没有那么触不可及,至少,知道了白富美的喜(爱)好,作息时间表等。
小屌丝:鱼哥,鱼叔,能不能再来点更深入的 ~ ~

现在,我们用一个典型的流程, 以J2EE为例,来看看屌丝怎么追阿姨 白富美的!

常见的J2EE应用框架一般分为:
web层:请求载入、负载均衡、页面渲染等,
应用层:业务逻辑实现,
持久化层:数据记录

下图,是一个典型的J2EE应用,我们来看看,在性能测试过程中,需要关注哪些指标:
在这里插入图片描述
业务名词解释:

  1. Client :客户浏览器,eg:IE,Chrome,Firefox等;
  2. LoadMachine:是生成负债的机器,即我们的压测机器用来模拟用户负债;
  3. Web Server:提供web服务的服务器,即我们访问的Web页面由此服务器提供服务;一般部署在 Nginx,Apache等中间件上;
    4.Middleware :中间件,如Tomcat、Jboss、WebLogic等;
  4. OS:操作系统,Windows或者Linux;
  5. System Resource:系统资源,如CPU、内存、磁盘、网络等;
  6. APP Server:应用服务,实现业务逻辑,如审生成订单,生成统计报表;
  7. DB:数据库服务器,如Mysql,Sqlserver,Oracle等;

性能词汇解释:


RT:响应时间,一笔业务的完成时间;
TPS:每秒完成的事物数;
CPU:CPU性能指标,如CPU利用率,CPU负载;
Mem:内存性能指标,如可用可用物理内存,可用内存使用率;
Disk:Disk性能指标,如Disk Time,IO等待;
Network:网络指标,如宽带使用率,任务队列长度;


TCP Connections:指TCP连接数,可以用netstat命令统计得到;
Thread Pool:中间件建立的线程池,监控线程状态;
JVM:JVM性能指标,如GC情况,Heap使用情况;
Load Average:CPU负载列队长度;


DB Connections:中间件与数据库之间建立的链接数及链接状态;


DB Time:消耗在数据库上的CPU时间;
TOP SQL:按内存占用,由多到少排序SQL,按CPU占用由多到少排序SQL;
PGA、SGA:PGA/SGA内存使用情况。

这时候又会问,小鱼,有能耐,你从咱性能测试工程师角度来举个栗子,让咱也瞅瞅,到底都分析啥!!

我就想问:你…瞅我干啥?? 瞅下面的栗子!!!

性能测试工程师角度分析过程

序号 步骤名称 说 明
1 检查RT 模拟用户发起负载后,采用自顶向下的方式首先按分析RT(响应时间)
2 检查TPS TPS大,而RT小,说明性能良好
3 检查负载机资源消耗 检查CPU使用率,负载(Load Average)确定是用户CPU占用率高,还是服务器CPU占用率高
4 检查Web服务器资源消耗 ①检查CPU使用率;②检查内存使用情况;③检查磁盘使用情况;④检查带宽占用情况;⑤分析Web页面响应的时间组成,确认是什么请求影响的性能
5 判断负载机是否有性能问题 确认负债机的正常运行,确保测试结果的准确性
6 确认是否Web服务器瓶颈 判断是否是Web服务器硬件性能问题
7 检查中间件配置 检查是否中间件配置问题
8 检查APP服务器资源消耗 关于CPU、内存、磁盘、IO,判断是否是APP服务器硬件性能瓶颈
9 DB资源消耗分析 ①CPU消耗,CPU负载;②内存消耗;③IO繁忙程度;④数据库监控;(不熟悉数据库可以找DBA来帮忙)
10 DB性能问题 由监控结果来判断是否是其问题(同样,不熟悉可以找DBA来帮忙)
11 是否是SQL问题 ①定位不合理的SQL占比;②索引是否正常使用;③查询共享SQL是否合理范围;④检查解析是否合理;⑤检查数据ER结构是否合理;⑥检查数据热点问题;⑦检查数据分布是否合理;⑧检查碎片整理等
12 其他 如网络堵塞、磁盘IO瓶颈、热点等

小屌丝:唉我去~~~~ 鱼哥,鱼叔,你 这个小栗子举的,挺高啊。
小鱼:一般般的了(臭不要脸的劲又来了)~
小屌丝:鱼叔,那你能不能概况以下,学习性能,需要了解的知识点
小鱼:我就知道你能说这句话,请往下看:

性能测试结果分析,包含但不仅限于的知识点:

①硬件知识(CPU、RAM、Disk、Net等);
②系统知识(os:linux、Windows);
③中间件知识(JVM、Tomcat、Jboss、WebLogic、WebSphere等);
④数据库知识(Mysql、SqlServer、Oracle、DB2、Sysbase等)
⑤网络知识(如截包分析);
⑥程序知识(如java);
⑦架构知识(如SSH架构)。

小鱼:完美~ ~ ~ ~
小屌丝:鱼叔,那按照这个骚流程,努力提升自我屌丝形象,是不是就能搞到白富美,走上人生巅峰,夜夜笙箫~~
小鱼:小屌丝,让你走上人生巅峰的,不一定是年轻的白富美!有可能是80岁的…白富美…
小屌丝:挖草~ 那夜夜笙箫…
在这里插入图片描述

小屌丝:鱼叔,能不能在share一点你的精华…
小鱼:额… 等我在整理一些关于优化方面的精华。
小屌丝:鱼叔,你赶紧撒冷的, 我"猎捕"到一个白富美,听说快过80大寿了!!
小鱼:挖草~ 挖草~ 知道了,知道了…

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章