日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tomcat调优

發布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tomcat调优 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.部署安裝Tomcat

http://tomcat.apache.org/

?

  • 將文件上傳到linux服務器中,解壓

tar -zxvf apache-tomcat-8.0.50.tar.gz
  • 修改配置文件,配置tomat的管理用戶

vim /conf/tomcat-users.xml

<role rolename="manager"/> <role rolename="namager-gui" /> <role rolename="admin"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui,manager,admin"/> </tomcat-users>
  • 如果是tomcat7,現在就可以登錄了,但是tomcat還需要修改另一個配置文件

vim webapps/manager/META-INF/context.xml

#將value的內容注釋掉即可 ? <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
  • 啟動tomcat

    進入tomcat的bin目錄,執行如下命令:

    ./startup.sh

然后就可以訪問了:

?

?

2.禁用AJP連接

在服務狀態頁面中可以看到,默認狀態下會啟用AJP服務,并且占用8009端口。

?

什么是AJP呢?

AJPv13協議是面向包的。WEB服務器和Servlet容器通過TCP連接來交互;為了節省SOCKET創建的昂貴代價,WEB服務器會嘗試維護一個永久TCP連接到Servlet容器,并且在多個請求和響應周期過程會重用連接。

我們一般是使用Nginx+tomcat的架構,所以不需要AJP協議

修改conf下的server.xml文件,將AJP服務禁用掉即可。

<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->

重啟tomcat,查看效果

可以看到AJP服務已經不存在了

3.線程池

在tomat中每一個用戶請求都是一個線程,所以可以使用線程池。

修改server.xml文件:

<!--參數說明:maxThreads:最大并發數,默認設置200,一般建議在500~1000,根據硬件和業務來判斷minSpareThreads:tomcat初始化時創建的線程數,默認設置25prestartminSpareThreads:在tomcat初始化的時候就初始化minSpareThreads的參數,如果不等于true,minSpareThreads的值就沒有效果maxQueueSize:最大的等待隊列數,超過則拒絕請求 --> ? ? ? ? <!-- 將注釋打開 --><Executor name="tomcatThreadPool" namePrefix="catalina-exec-"maxThreads="150" minSpareThreads="50"prestartminSpareThreads="true" maxQueueSize="100"/> ? ?<!-- 在Connector中設置executor屬性執行上面的線程池 --><Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

保存退出,重啟tomcat,查看效果。

在頁面上顯示最大線程數為-1,這個是正常的,僅僅是顯示的問題,實際使用的是指定的值

4.tomcat的3種運行模式

(1)bio

默認的模式,性能非常低下,沒有經過任何優化處理和支持

(2)nio

nio是Java SE 1.4及后續版本提供的一種新的I/O操作方式。Java nio是一個基于緩沖區、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的縮寫。它擁有比傳統I/O操作更好的并發運行性能。

(3)apr

安裝起來最困難,但是從操作系統級別來解決一步的IO問題,大幅度的提高性能

推薦使用nio,不過在tomcat8中有更新的nio2,速度更快,建議使用nio2

修改conf/server.xml

? ?<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"connectionTimeout="20000"redirectPort="8443" />

重啟tomcat:

運行模式由nio變為nio2

之前的:

?

之后的:

?

總結

以上是生活随笔為你收集整理的Tomcat调优的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。