tomcat 如何进行优化?优化方案有哪些?
tomcat的優(yōu)化
總的來說,Tomcat的優(yōu)化大致分為兩類,具體如下:
一.tomcat的優(yōu)化
1.tomcat的自身調(diào)優(yōu)
- 采用動靜分離
- 調(diào)優(yōu)Tomcat線程池
- 調(diào)優(yōu)Tomcat的連接器Connector
- 通過修改Tomcat的運行模式
- 禁用AJP連接器
2.JVM的調(diào)優(yōu)
-
內(nèi)存調(diào)優(yōu)
-
垃圾回收策略調(diào)優(yōu)
下面對Tomcat的優(yōu)化進行詳細的說明.
二.tomcat的自身調(diào)優(yōu)
靜態(tài)資源如果讓Tomcat處理的話,Tomcat的性能會損耗很多所以一般采用Nginx+Tomca實現(xiàn)動靜分離,讓Tomcat只負責jsp文件的解析工作,Nginx是實現(xiàn)靜態(tài)資源的訪問.
打開Tomcat的server.xml,配置Executor
接下來介紹一下參數(shù)的含義:
name : 給執(zhí)行器(線程池)起一個名字
namePrefix : 指定線程池中的每一個線程的name前綴
maxThreads :線程池中最大的線程數(shù)量
minSpareThreads : 線程池中允許空閑的線程數(shù)量(多余的線程都殺死)
maxIdleTime :一個線程空閑多久算是一個空閑線程
打開Tomcat的server.xml,配置Connector
enableLookups == false:關閉DNS解析,減少性能損耗
minProcessors:服務器啟動時創(chuàng)建的最少線程數(shù)
maxProcessors:最大可以創(chuàng)建的線程數(shù)
acceprCount=1000:線程池中的線程都被占用,允許放到隊列中的請求數(shù)
maxThreads = 3000;最大線程數(shù)
minSpareThreads = 20;最小空線程數(shù),這里是一直會運行的線程
與壓縮有關的配置,若對代碼進行了動靜分離,靜態(tài)頁面和圖片等數(shù)據(jù)就不需要tomcat處理
通過修改Tomcat的運行模式
BIO,在tomcat8以下,默認使用BIO模式,對于每一個請求都要創(chuàng)建一個線程來進行處理,不適合高并發(fā)。
配置信息是在conf/server.xml文件中,
NIO,tomcat8以上的版本,默認使用NIO
APR,全稱 Apache Portable Runtime,是Tomcat生產(chǎn)環(huán)境運行的首選方式,如果操作系統(tǒng)未安裝 APR 或者 APR 路徑未指到 Tomcat 默認可識別的路徑,則 APR 模式無法啟動,自動切換啟動 NIO 模式。所以必須要安裝 APR 和 Native,直接啟動就支持 APR,APR是從操作系統(tǒng)級別解決異步 IO 問題,APR 的本質(zhì)就是使用 JNI 技術調(diào)用操作系統(tǒng)底層的 IO 接口,所以需要提前安裝所需要的依賴提升 Tomcat 對靜態(tài)文件的處理性能,當然也可以采用動靜分離。
禁用AJP連接器
AJP的全稱 Apache JServer Protocol,使用 Nginx+Tomca t的架構,所以用不著 AJP 協(xié)議,所以把AJP連接器禁用。
配置信息是在conf/server.xml文件中,將圖中的部分進行注釋。
三、JVM調(diào)優(yōu)
Tomcat 是運行在 JVM 上的,所以對 JVM 的調(diào)優(yōu)也是非常有必要的。
找到 catalina.sh;調(diào)整堆大小的的目的是最小化垃圾收集的時間,以在特定的時間內(nèi)最大化處理客戶的請求。
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8-server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XXermSize=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"總結
以上是生活随笔為你收集整理的tomcat 如何进行优化?优化方案有哪些?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序结束后去哪儿了?
- 下一篇: tcp窗口滑动以及拥塞控制