日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作者:破解孤獨

來源:
https://www.cnblogs.com/L-Test/p/10611126.html

一、下載地址

https://Tomcat.Apache.org/download-80.cgi

二、安裝步驟

將安裝包 
apache-tomcat-8.5.39.tar.gz 上傳至服務器 /usr/local 目錄下,再執行如下步驟:


 
[root@admin local]# cd /usr/local
[root@admin local]# tar -zxvf apache-tomcat-8.5.39.tar.gz // 解壓壓縮包
[root@admin local]# mv apache-tomcat-8.5.39 tomcat-8.5.39 // 重命名tomcat目錄

啟動tomcat(JDK已經安裝好并配置了環境變量):


 
[root@admin local]# cd ./tomcat-8.5.39/bin
[root@admin bin]# ./startup.sh // 啟動tomcat

啟動成功,如下圖:

超詳細的Tomcat性能監控及調優教程

 

三、監控

通過以下網址打開tomcat管理頁面,默認端口為8080(如果不能打開則關閉服務器防火墻或者開放8080端口)

超詳細的Tomcat性能監控及調優教程

 

右側的 Server Status Manager App 和 Host Manager代表tomcat的管理頁面,想要進入這三個頁面首先需要配置服務器上tomcat安裝目錄下的conf/tomcat-users.xml文件,如果不做配置則會返回403頁面,如下:

超詳細的Tomcat性能監控及調優教程

 

在conf/tomcat-users.xml添加如下配置,再重啟tomcat


 
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="admin,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/>

Tomcat8如果在上面配置的基礎上,訪問時會報403錯誤,所以需要修改
conf/Catalina/localhost/manager.xml 文件(如果沒有的話新建)。配置內容如下:


 
<Context privileged="true" antiResourceLocking="false"
         docBase="${catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

再次重啟tomcat后,就能進入Server Status Manager APP 和 Host Manager這三個頁面了。

Server Status

超詳細的Tomcat性能監控及調優教程

 

Status-JVM

  • Free memory:剩余內存;
  • Total menory:總內存;
  • Max menory:最大內存;
超詳細的Tomcat性能監控及調優教程

 

Status-HTTP

  • Max threads:最大線程數;
  • Current thread count:當前線程數;
  • Current thread busy:當前忙碌線程數;
  • Max processing time:最大處理時間;
  • ms Processing time:最短處理時間;
  • Request count:請求數;
  • Error count:錯誤數;
  • Bytes received:接受字節;
  • Bytes sent:發送字節;

Manager APP

該頁面用來管理Web項目,部署在Tomcat下的項目可以通過該頁面來管理,如下:

超詳細的Tomcat性能監控及調優教程

 

Host Manager

該頁面用于管理主機

超詳細的Tomcat性能監控及調優教程

 

四、調優

1、Tomcat的運行模式有三種:

BIO

性能比較低下,沒有經過任何優化處理和支持。一個線程處理一個請求。缺點:并發量高時,線程數較多,浪費資源。Tomcat7或以下,在linux系統中默認使用這種方式。

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)更好的并發運行性能。

利用Java的異步IO處理,可以通過少量的線程處理大量的請求。

Tomcat8在Linux系統中默認使用這種方式。

Tomcat7必須修改Connector配置來啟動:


 
<Connector port="8080"protocol="org.apache.coyote.http11.Http11NioProtocol"
        connectionTimeout="20000" redirectPort="8443"/>

APR

安裝起來最困難,但是從操作系統級別來解決異步的IO問題,能夠大幅度的提高性能。即Apache PortableRuntime,從操作系統層面解決IO阻塞問題。

Tomcat7或Tomcat8在Win7或以上的系統中啟動默認使用這種方式。

Linux如果安裝了apr和native,Tomcat直接啟動就支持apr。

具體安裝辦法 參見這個地址:
https://my.oschina.net/lsw90/blog/181161

Tomcat啟動的時候,可以通過log看到Connector使用的是哪一種運行模式:

StartingProtocolHandler ["http-bio-8080"]
StartingProtocolHandler ["http-nio-8080"]
StartingProtocolHandler ["http-apr-8080"]
超詳細的Tomcat性能監控及調優教程

 

Tomcat7及以下版本啟動啟動NIO模式:

修改server.xml里的Connector節點,修改protocol為:
org.apache.coyote.http11.Http11NioProtocol,如下:

修改前:

超詳細的Tomcat性能監控及調優教程

 


超詳細的Tomcat性能監控及調優教程

 


超詳細的Tomcat性能監控及調優教程

 

修改后:

超詳細的Tomcat性能監控及調優教程

 


超詳細的Tomcat性能監控及調優教程

 


超詳細的Tomcat性能監控及調優教程

 

為什么它不直接改成NIO的形式呢?

這個方式是利用了jdk 1.4及后續版本提供的一種新的I/O操作方式(即java.nio包及其子包)為橋梁實現的,不改成這種優化方式就是為了兼容1.4之前的JAVA項目也能跑起來。

2、線程池(執行器)

Connector節點:

官方文檔:
https://tomcat.apache.org/tomcat-8.5-doc/config/http.html

默認的tomcat沒有啟用線程池,在tomcat中每一個用戶請求都是一個線程,所以可以使用線程池提高性能。這里前臺其實有一個調度線程,然后調度線程會放入線程池內,然后到到一定的時候線程池的任務變成工作線程。

開啟線程池:

超詳細的Tomcat性能監控及調優教程

 


超詳細的Tomcat性能監控及調優教程

 


超詳細的Tomcat性能監控及調優教程

 

maxThreads配置為500,但顯示為-1,查詢官方文檔發現:

超詳細的Tomcat性能監控及調優教程

 

意思是該屬性配置處理并發請求的最大線程數,如果不配置默認值是200。如果配置了executor屬性,這個屬性會被忽略。注意斜體部分提到:如果executor設置了值,使用JMX查看的時候這個值會是-1,這是正常的。

詳細參數解釋如下:

將原有的Executor標簽內容替換成如下內容

<Executor name="tomcatThreadPool" --線程池名
     namePrefix="catalina-exec-"
     maxThreads="500"
     minSpareThreads="30"
     maxIdleTime="60000"
     prestartminSpareThreads = "true"
     maxQueueSize = "100"/>
  • maxThreads:最大并發數,默認設置 200,一般建議在 500 ~ 800,根據硬件設施和業務來判斷
  • minSpareThreads:Tomcat 初始化時創建的線程數,默認設置 25
  • maxIdleTime:如果當前線程大于初始化線程,那空閑線程存活的時間,單位毫秒,默認60000=60秒=1分鐘。
  • prestartminSpareThreads:在 Tomcat 初始化的時候就初始化 minSpareThreads 的參數值,如果不等于 true,minSpareThreads 的值就沒啥效果了
  • maxQueueSize:最大的等待隊列數,超過則拒絕請求

將原有的Connector標簽內容替換成如下內容

超詳細的Tomcat性能監控及調優教程

 

替換后訪問速度肯定會比以前快

  • protocol:Tomcat 8 設置 nio2 更好:org.apache.coyote.http11.Http11Nio2Protocol
  • protocol:Tomcat 6 設置 nio 更好:org.apache.coyote.http11.Http11NioProtocol
  • protocol:Tomcat 8 設置 APR 性能飛快:org.apache.coyote.http11.Http11AprProtocol
  • connectionTimeout:Connector接受一個連接后等待的時間(milliseconds),默認值是60000。
  • maxConnections:這個值表示最多可以有多少個socket連接到tomcat上
  • enableLookups:禁用DNS查詢
  • acceptCount:當tomcat起動的線程數達到最大時,接受排隊的請求個數,默認值為100。
  • maxPostSize:設置由容器解析的URL參數的最大長度,-1(小于0)為禁用這個屬性,默認為2097152(2M) 請注意, FailedRequestFilter 過濾器可以用來拒絕達到了極限值的請求。
  • maxHttpHeaderSize:http請求頭信息的最大程度,超過此長度的部分不予處理。一般8K。
  • compression:是否啟用GZIP壓縮 on為啟用(文本數據壓縮) off為不啟用, force 壓縮所有數據
  • disableUploadTimeout:這個標志允許servlet容器使用一個不同的,通常長在數據上傳連接超時。 如果不指定,這個屬性被設置為true,表示禁用該時間超時。
  • compressionMinSize:當超過最小數據大小才進行壓縮
  • acceptorThreadCount:用于接受連接的線程數量。增加這個值在多CPU的機器上,盡管你永遠不會真正需要超過2。 也有很多非維持連接,您可能希望增加這個值。默認值是1。
  • compressableMimeType:配置想壓縮的數據類型
  • URIEncoding:網站一般采用UTF-8作為默認編碼。
  • processorCache:協議處理器緩存的處理器對象來提高性能。 該設置決定多少這些對象的緩存。-1意味著無限的,默認是200。 如果不使用Servlet 3.0異步處理,默認是使用一樣的maxThreads設置。 如果使用Servlet 3.0異步處理,默認是使用大maxThreads和預期的并發請求的最大數量(同步和異步)。
  • tcpNoDelay:如果設置為true,TCP_NO_DELAY選項將被設置在服務器套接字,而在大多數情況下提高性能。這是默認設置為true。
  • connectionLinger:秒數在這個連接器將持續使用的套接字時關閉。默認值是 -1,禁用socket 延遲時間。
  • server:隱藏Tomcat版本信息,首先隱藏HTTP頭中的版本信息

Executor節點:

官方文檔:
https://tomcat.apache.org/tomcat-8.5-doc/config/executor.html

五、AJP協議

Tomcat最主要的功能是提供Servlet/JSP容器,盡管它也可以作為獨立的Java Web服務器,但它對靜態資源(如HTML文件或圖像文件)的處理速度,以及提供的Web服務器管理功能方面都不如其他專業的HTTP服務器,如IIS和Apache服務器。因此在實際應用中,常常把Tomcat與其他HTTP服務器集成。對于不支持Servlet/JSP的HTTP服務器,可以通過Tomcat服務器來運行Servlet/JSP組件。

Tomcat服務器通過Connector連接器組件與客戶程序建立連接,Connector組件負責接收客戶的請求,以及把Tomcat服務器的響應結果發送給客戶。默認情況下,Tomcat在server.xml中配置了兩種連接器:

超詳細的Tomcat性能監控及調優教程

 

 

  • 第一個連接器監聽8080端口,負責建立HTTP連接。在通過瀏覽器訪問Tomcat服務器的Web應用時,使用的就是這個連接器。
  • 第二個連接器監聽8009端口,負責和其他的HTTP服務器建立連接。在把Tomcat與其他HTTP服務器集成時,就需要用到這個連接器。

在實際應用中,如果網站的訪問量非常大,為了提高訪問速度,可以將多個Tomcat服務器與Apache集成,讓它們共同分擔運行Servlet/JSP組件的任務。JK插件的loadbalancer(負載平衡器)負責根據在workers.properties文件中預先配置的lbfactor(負載平衡因數)為這些Tomcat服務器分配工作負荷,實現負載平衡。那么,Apache和Tomcat結合的時候,會有如下現象:

  • Apache會攔截所有請求,將servlet和JSP(.jsp結尾)請求通過AJP交給Tomcat處理,然后再把結果拿到Apache然后返回;
  • Apache將靜態資源的訪問,(類似html/css/jpg等類型的文件)自己直接處理不交給Tomcat,直接返回;
  • Apache和Tomcat結合之后,Tomcat的HTTP Connector永遠不會被用到了,而是用AJP Connector;

分享到:
標簽:監控 性能 Tomcat
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定