Jmeter測試移動介面性能--性能調優

前面寫了性能測試如何執行並得到測試報告。現在要開始最重要的一步了。性能調優。

說句實話,性能調優這塊我並沒有太多的經驗。只是簡單參與,以及和別人探討過。

性能測試不單單是性能測試工程師一個人的事兒。需要DBA 、開發人員、運維人員的配合完成。

性能調優這塊需要掌握的東西太多了,不知道從何處下手,是從硬體開始?還是先從代碼或資料庫?

從操作系統(CPU調度,內存管理,進程調度,磁碟I/O)、網路、協議(HTTP, TCP/IP )?還是從應用程序代碼,資料庫調優,中間件配置等方面入手?

「羅馬不是一天建成的」。

單一個中間件又分web中間件(apache 、IIS),應用中間件(tomcat 、weblogic 、webSphere )等,雖然都是中間件,每一樣都是要很深厚的功底。所以好的性能測試工程師很吃香。

一般會存在哪些瓶頸?

  • 1 硬體性能瓶頸: 一般指伺服器的CPU、內存、磁碟I/O 的問題。
  • 2 資料庫性能瓶頸: 資料庫系統,JDBC連接池的參數設置,表關係,表設計等問題。
  • 3 中間件性能瓶頸:如啟動服務的(tomcat 、weblogic 、IIS, nginx, JVM)等
  • 4 應用程序性能瓶頸:程序架構規劃不合理,程序本身設計有問題(串列處理、請求的處理線程不夠, 請求發送太多,資源沒有壓縮優化,演算法,數據請求等)
  • 5 操作系統上的性能瓶頸: 一般指的是windows、UNIX、Linux等操作系統。
  • 6 網路瓶頸: 網路的帶寬,傳輸速率,防火牆、交換機等設備的瓶頸。

如何優化?

找到了可能出現性能瓶頸的地方,優化起來就有的放矢了。

  1. 對於伺服器和網路硬體: 簡單粗暴的方法, 增加硬體,負載均衡。曾經跟一個運維總監討論過。他說現在伺服器都是刀片,而且價格已經降下來了,可以增加刀片。並且伺服器集群可以做負載均衡。有演算法可以選在就近網路迴路。
  2. 資料庫: 可以優化表結構,優化查詢,用游標,用存儲過程等來提高性能。還可以優化連接池的配置,緩存機制等
  3. 中間件:調優參數
  4. 應用程序性: 請求資源打包壓縮,Ajax機制,本地緩存,減少發送請求,優化演算法等。

目前想到的就只有這些,如果有不正確的地方,還請斧正。

大公司如何做性能測試?

馬上雙11就要來臨了,各大電商,物流機構,一個整個生態鏈都要面臨巨大流量檢驗。用Jmeter測試肯定不行的,都不是一個數量級別的測試。

曾經聽過某大型旅行網站的分享(剛剛還出醜聞的那個),它們把線上的流量record下來,然後隔離開部分伺服器當堡壘機。

把數據簡單清洗,通過gor, tcpcopy等引流,導流(可以放大,縮小)到堡壘機上進行壓測。

作者簡介:

Snake, 人稱安蜀黍,專職軟體測試10幾年,測試界的老司機。

更多精彩,請關注微信公眾號:python愛好部落

推薦閱讀:

軟體評測師證書有什麼用,前景怎樣啊?
給一群很水的開發做測試是什麼體驗?
要不要去參加軟體測試培訓?
想知道零基礎想快點入行軟體測試是不是非得參加培訓班?
持續集成到底是什麼樣的開發模式

TAG:自动化测试 | 软件测试 | 性能测试 |