1. 程式人生 > >Jmeter之tomcat性能測試+性能改進措施

Jmeter之tomcat性能測試+性能改進措施

ptc 級別 運行 域名 傳統 url postman -exec 創建

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性能測試+性能改進措施