Jmeter之tomcat性能測試+性能改進措施
Jmeter用於tomcat性能測試,因為項目部署在tomcat,正常情況下,一個tomcat可以承受500個並發,通過修改配置,及其相關的tomcat優化,可以承受到1000個並發。
如何測試tomcat優化前和優化後的結果?
通過Jmeter測試,就能達到對應的效果
Jmeter測試tomcat比較簡單
1.建立對應的線程組
2.建立Http請求 需要填寫的一個是協議名稱,一個是IP地址或域名,一個是端口號,還有一個是路徑
這個路徑默認不填也行,如果具體到post或get請求及其攜帶參數,就需要填寫
如果測試具體的get或post請求,加請求url和對應的參數,如下圖所示:
註意和postMan工具有些相似,不同於postman,Jmeter可以進行多用戶測試,即多個線程測試
通過察看結果樹,可以查看請求失敗:
聚合報告可供分析:
server.xml文件:
線程池優化:
連接池優化:
Executor重要參數說明:
name:共享線程池的名字。這是Connector為了共享線程池要引用的名字,該名字必須唯一。默認值:None;
namePrefix:在JVM上,每個運行線程都可以有一個name 字符串。這一屬性為線程池中每個線程的name字符串設置了一個前綴,Tomcat將把線程號追加到這一前綴的後面。默認值:tomcat-exec-;
maxThreads:該線程池可以容納的最大線程數。默認值:200;
maxIdleTime:在Tomcat關閉一個空閑線程之前,允許空閑線程持續的時間(以毫秒為單位)。只有當前活躍的線程數大於minSpareThread的值,才會關閉空閑線程。默認值:60000(一分鐘)。
minSpareThreads:Tomcat應該始終打開的最小不活躍線程數。默認值:25。
threadPriority:線程的等級。默認是Thread.NORM_PRIORITY
連接池重要參數說明:
executor:表示使用該參數值對應的線程池;
minProcessors:服務器啟動時創建的處理請求的線程數;
maxProcessors:最大可以創建的處理請求的線程數;
acceptCount:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。
這時你會發現性能會得到很大的提升
當然必要的時候,需要修改tomcat的內存
tomcat的3種運行模式
bio:
默認的模式,性能非常低下,沒有經過任何優化處理和支持.
nio:
nio(new I/O),是Java SE 1.4及後續版本提供的一種新的I/O操作方式(即java.nio包及其子包)。Java nio是一個基於緩沖區、並能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的縮寫。它擁有比傳統I/O操作(bio)更好的並發運行性能。
apr:
安裝起來最困難,但是從操作系統級別來解決異步的IO問題,大幅度的提高性能.
啟動NIO模式
修改server.xml裏的Connector節點,修改protocol為org.apache.coyote.http11.Http11NioProtocol
上述比對,這也就是我們為什麽選擇NIO的原因
Jmeter之tomcat性能測試+性能改進措施