欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

tomcat優(yōu)化配置小結(jié)

 更新時間:2023年05月26日 09:52:33   作者:鮑飛大劍  
本文主要介紹了tomcat優(yōu)化配置小結(jié),介紹了十一個方面的優(yōu)化問題,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

內(nèi)存優(yōu)化:

  • -server參數(shù):表示以服務(wù)模式啟動,啟動速度會稍微慢一點,但性能會高很多。不加這個參數(shù),默認(rèn)是以客戶端模式啟動。 -server:啟用jdk的server版本
  • -XX:PermSize:設(shè)置非堆內(nèi)存初始值,默認(rèn)是物理內(nèi)存的1/64。
  • -XX:MaxNewSize:新生代占整個堆內(nèi)存的最大值。
  • -XX:MaxPermSize:Perm(俗稱方法區(qū))占整個堆內(nèi)存的最大值,也稱內(nèi)存最大永久保留區(qū)域

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

set JAVA_OPTS=-Xms512m-Xmx512m

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

setJAVA_OPTS=-XX:PermSize=128M

2 連接數(shù)優(yōu)化,主要是在conf/server.xml配置文件中進(jìn)行修改。

2.1、優(yōu)化線程數(shù)

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

  • maxThreads:tomcat可用于請求處理的最大線程數(shù),默認(rèn)是200
  • minSpareThreads:tomcat初始線程數(shù),即最小空閑線程數(shù)
  • maxSpareThreads:tomcat最大空閑線程數(shù),超過的會被關(guān)
  • acceptCount:當(dāng)所有可以使用的處理請求的線程數(shù)都被使用時,可以放到處理隊列中的請求數(shù),超過這個數(shù)的請求將不予處理.默認(rèn)100

2.2、使用線程池

在server.xml中增加executor節(jié)點,然后配置connector的executor屬性

  • namePrefix:線程池中線程的命名前綴
  • maxThreads:線程池的最大線程數(shù)
  • minSpareThreads:線程池的最小空閑線程數(shù)
  • maxIdleTime:超過最小空閑線程數(shù)時,多的線程會等待這個時間長度,然后關(guān)閉
  • threadPriority:線程優(yōu)先級

當(dāng)tomcat并發(fā)用戶量大的時候,單個jvm進(jìn)程確實可能打開過多的文件句柄,這時會報java.net.SocketException:Too many open files錯誤??墒褂孟旅娌襟E檢查:

ps -ef |grep tomcat 查看tomcat的進(jìn)程ID,記錄ID號,假設(shè)進(jìn)程ID為10001

lsof -p 10001|wc -l 查看當(dāng)前進(jìn)程id為10001的 文件操作數(shù)

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

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

3.1、三種模式比較

1)BIO:一個線程處理一個請求。缺點:并發(fā)量高時,線程數(shù)較多,浪費資源。Tomcat7或以下在Linux系統(tǒng)中默認(rèn)使用這種方式

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

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

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

3.2、apr模式

安裝apr以及tomcat-native

yum -y install

make && make install

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

  修改8080端對應(yīng)的conf/server.xml

4 并發(fā)配置優(yōu)化

Tomcat的并發(fā)請求處理數(shù)量=maxThreads + acceptCount

enableLookups:如果為true,調(diào)用request.getRemoteHost會執(zhí)行DNS反查,反向解析IP對應(yīng)的域名或主機(jī),效率較低,建議設(shè)為false。

5 tomcat配置優(yōu)化

6  執(zhí)行器優(yōu)化(線程池)

Executor重要參數(shù)說明:

  • name:共享線程池的名字。這是Connector為了共享線程池要引用的名字,該名字必須唯一。默認(rèn)值:None;
  • namePrefix:在JVM上,每個運行線程都可以有一個name 字符串。這一屬性為線程池中每個線程的name字符串設(shè)置了一個前綴,Tomcat將把線程號追加到這一前綴的后面。默認(rèn)值:tomcat-exec-;
  • maxThreads:該線程池可以容納的最大線程數(shù)。默認(rèn)值:200;
  • maxIdleTime:在Tomcat關(guān)閉一個空閑線程之前,允許空閑線程持續(xù)的時間(以毫秒為單位)。只有當(dāng)前活躍的線程數(shù)大于minSpareThread的值,才會關(guān)閉空閑線程。默認(rèn)值:60000(一分鐘)。
  • minSpareThreads:Tomcat應(yīng)該始終打開的最小不活躍線程數(shù)。默認(rèn)值:25。
  • threadPriority:線程的等級。默認(rèn)是Thread.NORM_PRIORITY

Connector重要參數(shù)說明:

  • executor:表示使用該參數(shù)值對應(yīng)的線程池;
  • minProcessors:服務(wù)器啟動時創(chuàng)建的處理請求的線程數(shù);
  • maxProcessors:最大可以創(chuàng)建的處理請求的線程數(shù);
  • acceptCount:指定當(dāng)所有可以使用的處理請求的線程數(shù)都被使用時,可以放到處理隊列中的請求數(shù),超過這個數(shù)的請求將不予處理。

7 禁用AJP連接器

我們一般是使用Nginx+tomcat的架構(gòu),所以用不著AJP協(xié)議,所以把AJP連接器禁用

8 配置優(yōu)化

8.1 Connector 優(yōu)化

<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組件之間共享。使用線程池的好處在于減少了創(chuàng)建銷毀線程的相關(guān)消耗,而且可以提高線程的使用效率。

<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標(biāo)簽中可以配置多個Listener,其中 JreMemoryLeakPreventionListener是用來預(yù)防JRE內(nèi)存泄漏。此Listener只需在Server標(biāo)簽中配置即可,默認(rèn)情況下無需配置,已經(jīng)添加在 Server中。

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

9 設(shè)置Tomcat的編碼

10 設(shè)置Tomcat的熱部署

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

path:訪問項目的路徑;

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

11 修改Tomcat命令窗口的名字

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

到此這篇關(guān)于tomcat優(yōu)化配置小結(jié)的文章就介紹到這了,更多相關(guān)tomcat優(yōu)化配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • Tomcat中連接器(Connector)的實現(xiàn)

    Tomcat中連接器(Connector)的實現(xiàn)

    Tomcat中的連接器負(fù)責(zé)處理客戶端通信,支持HTTP、HTTPS和AJP協(xié)議,通過配置連接器,可以滿足不同的部署需求,包括端口、協(xié)議和SSL參數(shù),正確配置連接器是確保Tomcat服務(wù)器高效運行和安全的關(guān)鍵
    2024-11-11
  • IntelliJ?IDEA中配置Tomcat超詳細(xì)教程

    IntelliJ?IDEA中配置Tomcat超詳細(xì)教程

    這篇文章主要介紹了IntelliJ?IDEA中配置Tomcat超詳細(xì)教程,需要的朋友可以參考下
    2022-08-08
  • eclipse中的項目無法添加到tomcat中的處理方法

    eclipse中的項目無法添加到tomcat中的處理方法

    這篇文章主要介紹了eclipse中的項目無法添加到tomcat中,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • CentOS系統(tǒng)下安裝Tomcat7的過程詳解

    CentOS系統(tǒng)下安裝Tomcat7的過程詳解

    今天開始學(xué)習(xí)Tomcat7 ,學(xué)習(xí)前首先需要安裝,我用的系統(tǒng)是CentOS系統(tǒng),所以下面這篇文章主要介紹了CentOS系統(tǒng)下安裝Tomcat7的過程,需要的朋友可以參考下,下面來一起看看吧。
    2016-12-12
  • 詳解如何通過tomcat的ManagerServlet遠(yuǎn)程部署項目

    詳解如何通過tomcat的ManagerServlet遠(yuǎn)程部署項目

    這篇文章主要介紹了詳解如何通過tomcat的ManagerServlet遠(yuǎn)程部署項目,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • TomCat啟動找不到配置的環(huán)境變量解決

    TomCat啟動找不到配置的環(huán)境變量解決

    本文主要介紹了TomCat啟動找不到配置的環(huán)境變量解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • idea配置tomcat必坑指南圖文詳解

    idea配置tomcat必坑指南圖文詳解

    本文通過圖文并茂的形式給大家介紹了idea配置tomcat必坑指南,對大家在日常工作學(xué)習(xí)有非常大的幫助,需要的朋友可以參考下
    2022-04-04
  • idea中Tomcat服務(wù)器啟動錯誤問題及解決

    idea中Tomcat服務(wù)器啟動錯誤問題及解決

    這篇文章主要介紹了idea中Tomcat服務(wù)器啟動錯誤問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • IDEA編輯器整合Apache Tomcat的詳細(xì)教程

    IDEA編輯器整合Apache Tomcat的詳細(xì)教程

    這篇文章主要介紹了IDEA編輯器整合Apache Tomcat教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Tomcat8使用cronolog來進(jìn)行Catalina.Out日志分割方法

    Tomcat8使用cronolog來進(jìn)行Catalina.Out日志分割方法

    今天通過本文給大家分享如何使用cronolog來分割catalina.out日志文件,對Tomcat Catalina.Out日志分割方法感興趣的朋友跟隨小編一起看看吧
    2021-09-09

最新評論