效能測試新手誤區(六) 效能監控

2021-07-22 01:52:35 字數 1489 閱讀 5704

「資料庫(或中介軟體)非常慢了,如何監控它的效能」

「你想得到什麼效能指標?」

「就是……內部的效能指標」

收到效能測試人員這樣的問題後,通常會發生上面的對話。

我的觀點是,準確的說出你想要做什麼,比你會不會做更重要。

那麼對於效能測試人員來說,」效能監控「這門必修課,該從何下手呢?

如果我給你乙個黑盒子,告訴你裡面是一部機器,要監控它的效能。你能做到麼?當然不能。因為你不知道這部機器如何執行,你不知道對它而言效能是什麼。

效能測試也一樣,說到作業系統,大家都知道效能指標要看cpu、memory、disk io以及network等等。但是到了資料庫和中介軟體,如果測試人員說不出具體內容,這表明他不知道針對這個物件,效能是什麼,即便把最完整的效能指標擺在面前,恐怕也是沒有意義的。

當然知識和經驗是一步步積累起來的,但也需要測試人員去主動的學習。從系統體系結構、執行原理到效能監控、效能調優基礎和方法,官方手冊總是最好的教材。

那麼在沒有掌握這些知識之前,我希望上面的問題是這樣問,「資料庫(或中介軟體)非常慢了,一般需要監控它的哪些效能指標呢」,得到回答後趕緊翻資料吸收相關的知識。

效能測試新手容易忽略測試過程中的效能監控,而只給出乙個最終的測試執行結果。

比如這個問題,「測試執行3小時後,系統沒有響應,中介軟體無法連線」。

對於這樣的問題,期望開發人員如何處理呢?中介軟體已經無法連線,想獲取到一些內部的效能指標恐怕都已做不到。只有重執行一次,讓開發人員來關注過程中的執行狀況,但這本應是由測試人員來做的。

如果我們知道,中介軟體本身無法響應一般可能是因為這兩個問題:

jvm堆記憶體用滿,不停的進行gc,導致響應超慢(但是還沒有oom,否則就報錯了)

處理http請求的執行緒,都被占用或者鎖住

那麼我們就可以在測試過程中去監控這兩項資料,跟蹤變化趨勢,直到系統再次無法響應。如果正好其中的乙個資源也耗盡了,那麼就可以確認「無法響應「這個現象的直接原因。實際上,這兩個指標基本也是中介軟體最重要的指標,理應每次測試過程都進行監控和資料採集了。

系統的效能表現會涉及到多個層面,比如:

中介軟體 -> 中介軟體作業系統 -> 資料庫 -> 資料庫作業系統 -> 客戶端

監控時也要著眼於多個層面,這樣才有可能更接近問題的本質。還是上面那個中介軟體無法響應的問題,假設我們觀察到了所有http執行緒都被占用,也許更進一步我們又會發現這些執行緒都在執行資料庫的查詢,而這些查詢在資料庫中的狀態依然是running,那就說明更根本的原因是在資料庫層面。這也就是問題的逐步定位。

片面的資料不足以說明問題,系統的方方面面常常是相互影響的。

比如資料庫的cpu占用很高,並不能證明系統是計算密集型、cpu是瓶頸,也有可能是spinlock的爭用導致了cpu驟增。

再比如大量的page-in io可能會使記憶體出現瓶頸。

上面的層次問題其實也屬於」全面「的範圍。只有拿到全面的資料,才有可能分析出正確的結論。

當然,這又是乙個需要積累的過程,如果連spinlock都不知道,又怎麼可能有準確的判斷呢。

方法還是乙個,主動的學習,系統的學習。

效能測試新手誤區(一)

系列原創 效能測試新手誤區 有過一些效能測試經驗的人很容易進入此狀態,他們已經熟悉了效能測試的基本流程,能夠比較熟練的使用測試工具開展工作。我大概從事效能測試一年左右時遇到了這個問題,那時我覺得效能測試的過程沒有太多挑戰,遇到的每乙個系統,彷彿都可以用同樣的流程完成。半天時間填寫測試方案,一天時間來...

效能測試報告模板 效能測試新手誤區

推薦閱讀 1 效能測試學習筆記 場景設計 2 效能測試的重要意義 3 效能分析流程及方法 4 應用系統效能調優之效能分析 效能測試新手誤區 效能測試新手誤區 找不到測試點,不知為何而測 有過一些效能測試經驗的人很容易進入此狀態,他們已經熟悉了效能測試的基本流程,能夠比較熟練的使用測試工具開展工作。我...

效能測試新手誤區(五) 這是效能問題麼

經常會見到新人提出這樣的效能問題 100使用者時,a操作響應時間達到了xx秒,請修改 場景執行2個小時後,系統沒有響應了 面對這樣的問題,開發人員一定會覺得很無助,他們甚至不知道問題是什麼。即使從測試人員的角度來看,這也算不上是乙個合格的問題。甚至是不是真正的問題,都要暫時打上問號。那麼乙個合格的效...