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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

tomcat优化配置

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

1修改Tomcat的內存配置,打開$TOMCAT_HOME/bin/catalina.sh文件

? 內存優化:

? -server參數:表示以服務模式啟動,啟動速度會稍微慢一點,但性能會高很多。不加這個參數,默認是以客戶端模式啟動。?-server:啟用jdk的server版本

? -XX:PermSize:設置非堆內存初始值,默認是物理內存的1/64。

? -XX:MaxNewSize:新生代占整個堆內存的最大值。

? -XX:MaxPermSize:Perm(俗稱方法區)占整個堆內存的最大值,也稱內存最大永久保留區域

? 1)錯誤提示:java.lang.OutOfMemoryError:Java heap space

? ? set JAVA_OPTS=-Xms512m-Xmx512m

? 2)錯誤提示:java.lang.OutOfMemoryError: PermGenspace

? ? setJAVA_OPTS=-XX:PermSize=128M

2 連接數優化,主要是在conf/server.xml配置文件中進行修改。

? 2.1、優化線程數

? ? 增加maxThreads和acceptCount屬性(使acceptCount大于等于maxThreads)

? ? maxThreads:tomcat可用于請求處理的最大線程數,默認是200

? ? minSpareThreads:tomcat初始線程數,即最小空閑線程數

? ? maxSpareThreads:tomcat最大空閑線程數,超過的會被關

? ? acceptCount:當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理.默認100

? 2.2、使用線程池

? ? 在server.xml中增加executor節點,然后配置connector的executor屬性

? ? namePrefix:線程池中線程的命名前綴

? ? maxThreads:線程池的最大線程數

? ? minSpareThreads:線程池的最小空閑線程數

? ? maxIdleTime:超過最小空閑線程數時,多的線程會等待這個時間長度,然后關閉

? ? threadPriority:線程優先級

? ?當tomcat并發用戶量大的時候,單個jvm進程確實可能打開過多的文件句柄,這時會報java.net.SocketException:Too many open files錯誤。可使用下面步驟檢查:

? ? ps -ef |grep tomcat 查看tomcat的進程ID,記錄ID號,假設進程ID為10001

? ? lsof -p 10001|wc -l 查看當前進程id為10001的 文件操作數

? ? 使用命令:ulimit -a 查看每個用戶允許打開的最大文件數

3 tomcat connector三種運行模式(BIO,NIO,APR)

? 3.1、三種模式比較

? ?1)BIO:一個線程處理一個請求。缺點:并發量高時,線程數較多,浪費資源。Tomcat7或以下在Linux系統中默認使用這種方式

? ?2)NIO:利用Java的異步IO處理,可以通過少量的線程處理大量的請求。Tomcat8在Linux系統中默認使用這種方式。Tomcat7必須修改Connector配置來啟動(conf/server.xml配置文件):

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

? 3)APR(Apache Portable Runtime):從操作系統層面解決io阻塞問題。Linux如果安裝了apr和native,Tomcat直接啟動就支持apr。

? ?3.2、apr模式

? ? 安裝apr以及tomcat-native

? ? yum -y install

? ?make && make install

? ?安裝成功后還需要對tomcat設置環境變量,方法是在catalina.sh文件中增加1行

? 修改8080端對應的conf/server.xml

4 并發配置優化

? ? Tomcat的并發請求處理數量=maxThreads + acceptCount

? ??enableLookups:如果為true,調用request.getRemoteHost會執行DNS反查,反向解析IP對應的域名或主機,效率較低,建議設為false。

5 tomcat配置優化

6? 執行器優化(線程池)

? ? 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:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。

7?禁用AJP連接器

我們一般是使用Nginx+tomcat的架構,所以用不著AJP協議,所以把AJP連接器禁用

?

8 配置優化

? ? ? ? 8.1?Connector?優化

<Connector port="8080" protocol="HTTP/1.1" maxThreads="1000" minSpareThreads="100" acceptCount="1000" maxConnections="1000" connectionTimeout="20000" maxHttpHeaderSize="8192" tcpNoDelay="true" compression="on" compressionMinSize="2048" disableUploadTimeout="true" redirectPort="8443" enableLookups="false" URIEncoding="UTF-8" />

? ? ? ? 8.2?線程池?

????????????????Executor代表了一個線程池,可以在Tomcat組件之間共享。使用線程池的好處在于減少了創建銷毀線程的相關消耗,而且可以提高線程的使用效率。

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1000" minSpareThreads="100" maxIdleTime="60000" maxQueueSize="Integer.MAX_VALUE" prestartminSpareThreads="false" threadPriority="5" className="org.apache.catalina.core.StandardThreadExecutor"/>

????????8.3?Listener?

????????????????Server標簽中可以配置多個Listener,其中 JreMemoryLeakPreventionListener是用來預防JRE內存泄漏。此Listener只需在Server標簽中配置即可,默認情況下無需配置,已經添加在 Server中。

????????????????<Listener?className="org.apache.catalina.core.JreMemoryLeakPreventionListener"?/>??

9?設置Tomcat的編碼

10?設置Tomcat的熱部署

????????docBase:項目所在路徑,可以使用絕對路徑或相對路徑,相對路徑是相對于webapps ;

????????path:訪問項目的路徑;

????????reloadable:是否自動加載新增或改變的class文件;

11?修改Tomcat命令窗口的名字

????????在運行多個tomcat窗口的時候,可以通過修改tomcat命令窗口的名字來區分不同的tomcat;

12?

?

?

總結

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

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