0
点赞
收藏
分享

微信扫一扫

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


性能分析流程

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

所以,

屌丝也开始了"奋发图强"。

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


我们常见的系统架构,大体可分为3部分:

web服务

APP服务

DB服务如下图,传统架构

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


所以,我们要分析的性能无非就是分析这3部分,

Web服务、APP服务一般运行在中间件上,

中间件与DB运行在操作系统上,

操作系统来管理计算机硬件设备(如 CPU、内存、磁盘、网卡等)。

小鱼:小屌丝,我这样一列举,是不是觉得,白富美也没有那么触不可及,至少,知道了白富美的喜(爱)好,作息时间表等。

小屌丝:鱼哥,鱼叔,能不能再来点更深入的 ~ ~

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

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

下图,是一个典型的J2EE应用,我们来看看,在性能测试过程中,需要关注哪些指标:

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


业务名词解释:

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

小屌丝:挖草~ 那夜夜笙箫…

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

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

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


举报

相关推荐

0 条评论