思路如下:(從前到後,從表象到內部)
首先排除壓力機自身的問題,如cpu、記憶體、網路、指令碼、應用環境等問題;
監控中介軟體的訪問日誌,觀察響應時間,大體確定耗時處於哪乙個階段(把範圍縮小);
排查網路問題,監控壓力機到後端服務的網路,以及各服務間的網路,是否達到網路上線(網路問題一般不會出現,但是容易被忽略,條件允許的話,效能測試的網路獨立);
監控服務端所有機器的作業系統負載,如cpu,記憶體,磁碟,網路是否達到瓶頸(這塊主要監控應用伺服器和資料庫伺服器作業系統級別的);
監控應用服務的日誌,檢視是否有error,或者timeout級別的報錯(主要開啟部署應用,動態監控);
監控中介軟體的連線數,如nginx、tomcat、mysql 是否達到上限(目前專案中我就是檢視了mysql的連線數:show variables like '%connections%'和show status like '%thread%')
監控應用程式執行緒狀態,使用jstack和jvisualvm檢視是否有死鎖、阻塞情況;(監控的方法關注後面的blog);
監控應用程式的jvm,使用jstat和jmap檢視gc情況,是否有記憶體洩漏情況;
使用jprofiler監控應用程式,可以檢視耗時時間比較長的**(這個工具需要破解,在公司慎重使用,萬一被安排上了,哈哈)
監控資料庫,是否有慢查詢,一般資料庫cpu過高的原因都是慢查詢(這個一般阿里雲會提供這種服務,可以隨時監控);
監控資料庫執行計畫,是否有全表掃瞄,以及索引不生效的情況;
檢查系統是否有外部依賴情況,如果外部依賴性能很差,也會造成效能低下(這此壓測主要的問題,就是因為外部依賴性能差的原因);
對於不好定位的問題,可以採用模組隔離的方法來確定問題
ps :以上的思路都是理論,如何實踐,還需要做專案時,親自體會
如何定位專案效能問題
當遇到效能問題時,我們該怎麼辦?分治策略 1.首先我們應將整個專案細分成多個模組 2.測試每乙個模組的效能,找出每乙個模組的問題,分而治之 3.每乙個模組的效能都解決了,那麼整合到一起的專案效能問題舊解決了 如何gettickcount測試單個介面的呼叫時間?1.系統api gettickcount...
效能測試 瓶頸定位 工具使用(下)
報告分析 1 為方便查詢 a 以 timestamp webtestname userload 命名 test result b 將部分指標以 換算 ex network i o fail ratio 2 效能定位的目的 基於成本考量,將系統最昂貴部分用至極限從而確定了優先順序排序 i o cpu ...
如何對測試物件進行定位
首先,謝謝的分享。花了2周時間,看了幾本關於這方面的書,基本走完了selenium python webdriver的第一遍,目前能夠搭建環境,做到對任何網頁的控制項定位以及進行自動化測試,並能夠實現將測試結果生成測試報告以及資料引數化等知識點。前面幾篇博文是親自動手反覆實現過。通過實踐練習,對we...