共計 1918 個字符,預計需要花費 5 分鐘才能閱讀完成。
這篇“提升 Tomcat 性能的方法是什么”文章的知識點大部分人都不太理解,所以丸趣 TV 小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“提升 Tomcat 性能的方法是什么”文章吧。
Tomcat 的默認配置,性能并不是最優的,我們可以通過優化 tomcat 以此來提高網站的并發能力。提高 Tomcat 的性能可以分為兩個方向。
服務器資源
服務器所能提供 CPU、內存、硬盤的性能對處理能力有決定性影響,所以說服務器性能牛 B,Tomcat 也不會太差。當然提高服務器的硬件配置,是需要大量 RMB 的支持的。所以不到萬不得已不會采用這種方式,一般公司會采取下面這種通過優化配置,來提升 Tomcat 性能的方式。
優化配置
優化配置之前,我們需要配置一個 tomcat 管理員賬戶,來登錄查看 Tomcat 控制臺提高的各種參數。
在 conf/ tomcat-users.xml 下添加用戶:
role rolename= manager / role rolename= manager-gui / role rolename= admin / role rolename= admin-gui / user username= tomcat password= tomcat roles= admin-gui,admin,manager-gui,manager /
啟動 tomcat,登錄查看信息:http://127.0.0.1:8080/
tomcat 的 3 種運行模式
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
執行器優化(線程池)
在 tomcat 中每一個用戶請求都是一個線程,所以可以使用線程池提高性能。
開啟并且使用
配置:
在 Connector 中指定使用共享線程池
查看 Tomcat 控制臺
Executor 重要參數說明:
name:共享線程池的名字。這是 Connector 為了共享線程池要引用的名字,該名字必須唯一。默認值:None;
namePrefix: 在 JVM 上,每個運行線程都可以有一個 name 字符串。這一屬性為線程池中每個線程的 name 字符串設置了一個前綴,Tomcat 將把線程號追加到這一前綴的后面。默認值:tomcat-exec-;
maxThreads:該線程池可以容納的最大線程數。默認值:200;
maxIdleTime:在 Tomcat 關閉一個空閑線程之前,允許空閑線程持續的時間(以毫秒為單位)。只有當前活躍的線程數大于 minSpareThread 的值,才會關閉空閑線程。默認值:60000(一分鐘)。
minSpareThreads:Tomcat 應該始終打開的最小不活躍線程數。默認值:25。
threadPriority:線程的等級。默認是 Thread.NORM_PRIORITY
Connector 重要參數說明:
executor:表示使用該參數值對應的線程池;
minProcessors:服務器啟動時創建的處理請求的線程數;
maxProcessors:最大可以創建的處理請求的線程數;
acceptCount:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。
參數最佳實踐
禁用 AJP 連接器
AJP(Apache JServer Protocol)
AJPv13 協議是面向包的。WEB 服務器和 Servlet 容器通過 TCP 連接來交互; 為了節省 SOCKET 創建的昂貴代價,WEB 服務器會嘗試維護一個永久 TCP 連接到 servlet 容器,并且在多個請求和響應周期過程會重用連接。
我們一般是使用 Nginx+tomcat 的架構,所以用不著 AJP 協議,所以把 AJP 連接器禁用。
在管理界面中看不到 ajp 了:
以上就是關于“提升 Tomcat 性能的方法是什么”這篇文章的內容,相信大家都有了一定的了解,希望丸趣 TV 小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注丸趣 TV 行業資訊頻道。