1. 程式人生 > >性能分析思路

性能分析思路

網絡 class tex 開啟 一半 連接數 edi 長連接 磁盤io

技術分享圖片

1.檢查是否是網絡原因:

1)確認壓測機和服務器是否在同一內網環境,沒有走internet網絡

2)檢查壓測機的服務器的網卡是否有帶寬瓶頸,理論上不能超過最大帶寬的70%

2.確認jmeter壓測機是否存在壓力不夠,監控壓測機的硬件資源,看占用是否偏高。可以通過以下方式提高壓測機壓力:

1)設置jmeter的jvm堆大小提高jmeter對壓測機硬件資源利用率(一般為壓測機內存的一半)。

2)部署jmeter壓測機集群

3.分析是否是應用服務器問題

4.應用服務器硬件問題:

1)查看服務器CPU使用率是否偏高(>70%),CPU load負載是否大於CPU核數。

2)查看內存使用率是否偏高(>80%),註意服務器是否有把內存設置了swap緩存,如設置緩存使用率不超過70%。

3)查看磁盤使用率和磁盤IO是否異常偏高

5.應用服務器軟件問題,主要有以下三個方面:

1)數據庫和緩存問題

2)中間件(Tomcat)

3)業務邏輯和代碼邏輯(第9步再分析)

6.數據庫和緩存問題:

1)確認服務器是否開啟了redis緩存或者本地緩存,根據經驗redis緩存和本地可大幅提高TPS和降低響應時間(ps:本地緩存需根據具體業務評估是否可以開啟,不具有普適性)

2)監控數據庫連接數,看是否達到設定的最大值,可適當提高最大數據庫連接數。

3)監控數據庫,看是否存在慢的SQL語句,找出慢SQL的原因,進行優化。

4)監控全表掃描率,通過修改SQL語句盡量減少全表查詢。

5)緩存命中率,檢查系統是否啟用查詢緩存。此處可尋求DBA幫助,提高緩存命中率。

7.中間件(Tomcat),這主要監控服務器的TCP連接數和連接狀態,看是否存在以下問題:

1)存在大量TIME_WAIT狀態的連接,如果業務需要保持連接,則可通過開啟服務器長連接優化此問題。

2)存在CLOSE_WAIT狀態的連接,一般為代碼問題,沒有及時釋放連接,需要具體分析。

3)連接數偏低,需要適當提高Tomcat線程池,和最大連接數,進行回歸壓測,尋找合適的配置。

8.如果以上指標都正常,監控查看Nginx各項指標,確認是否存在以下問題:

1)入口和出口流量是否達到帶寬瓶頸

2)tcp連接數是否到了瓶頸,是否存在大量的TIME_WAIT狀態的連接

3)響應時間是否偏高

4)負載均衡調度是否有問題

9.如果以上指標都正常的話,需要進一步分析業務邏輯和代碼(eg:可以盡量減少不必要的日誌打印)

報錯問題分析

5XX錯誤:jmeter報告有5XX錯誤,需要開發或者運維查看Tomcat、Nginx日誌,分析具體原因。

Non HTTP response code: java.net.ConnectException:一般是連接超時(查日誌), 從幾個方面排查,腳本問題、網絡、服務器承受能力到了極限(監控系統資源),並發量超過系統處理能力會出現這種情況。

性能分析思路