看過這篇《性能分析流程》後,和麪試官聊天都有底氣了!!!

性能分析流程

性能這塊,就好比屌絲想追白富美(暫且不說這個白富美的年齡,)…一直在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大壽了!!
小魚:挖草~ 挖草~ 知道了,知道了…

在這裏插入圖片描述

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