Tomcat調優實戰
使用壓力測試工具JMeter來調優JVM的配置引數:
1、新建一個web工程,用來做被測試的專案
@WebServlet(urlPatterns="/index") public class InextServlet extends HttpServlet { private static final long serialVersionUID = 1L; private int count; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { count ++; System.out.println(count + ":do get。。。"); } }
2、開啟jmeter.bat
①設定語言
②建立執行緒組
③設定執行緒引數
④配置取樣器http請求
儲存執行,檢視結果:
如果大家都是做Web應用的效能測試,例如只有一個登入的請求,那麼在Aggregate Report中,會顯示一行資料,含義分別如下。
Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這裡顯示的就是 Name 屬性的值
#Samples:表示你這次測試中一共發出了多少個請求,如果模擬10個使用者,每個使用者迭代10次,那麼這裡顯示100
Average:平均響應時間——預設情況下是單個 Request 的平均響應時間
Median:中位數,也就是 50% 使用者的響應時間
90% Line:90% 使用者的響應時間
Min:最小響應時間
Max:最大響應時間
Error%:本次測試中出現錯誤的請求的數量/請求的總數
Throughput:吞吐量——預設情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數
KB/Sec:每秒從伺服器端接收到的資料量,相當於LoadRunner中的Throughput/Sec
我們要做的根據這些結果報告和異常資訊,做各種調優測試,不同的機器,不同的程式,對應的jvm配置都是不盡相同的,沒有一個統一的標準,只能一次一次的測試,找到一個比較好的配置方案!
測試比較幾組配置組合:
-Xms50M
-Xmx50M
-Xmn10M
-Xss256k
-XX:+PrintGCDetails
-XX:+UseSerialGC
-Xms1000M
-Xmx1000M
-Xmn600M
-Xss256k
-XX:+PrintGCDetails
-XX:+UseSerialGC
-Xms1000M
-Xmx1000M
-Xmn600M
-Xss256k
-XX:+UseConcMarkSweepGC
-XX:+PrintGCDetails
比較