當前位置:首頁 » 操作系統 » linuxtomcat設置內存

linuxtomcat設置內存

發布時間: 2022-09-07 11:23:31

A. tomcat並發優化配置

2.protocol協議更改

主要是針對jvm內存的配置

Heap Size 最大不要超過可用物理內存的80%,一般的要將-Xms和-Xmx選項設置為相同堆內存分配 (訪問量比較大時設為一致)

JVM初始分配的內存由-Xms指定,默認是物理內存的1/64;JVM最大分配的內存由-Xmx指定,默認是物理內存的1/4。默認空餘堆內存小於 40%時,JVM就會增大堆直到-Xmx的最大限制;空餘堆內存大於70%時,JVM會減少堆直到-Xms的最小限制。因此伺服器一般設置-Xms、 -Xmx相等以避免在每次GC 後調整堆的大小。

非堆內存分配
JVM使用-XX:PermSize設置非堆內存初始值,默認是物理內存的1/64;由XX:MaxPermSize設置最大非堆內存的大小,默認是物理內存的1/4。
JVM內存限制(最大值)
首先JVM內存限制於實際的最大物理內存(廢話!呵呵),假設物理內存無限大的話,JVM內存的最大值跟操作系統有很大的關系。簡單的說就32位 處理器雖然可控內存空間有4GB,但是具體的操作系統會給一個限制,這個限制一般是2GB-3GB(一般來說Windows系統下為1.5G- 2G,linux系統下為2G-3G),而64bit以上的處理器就不會有限制了。(使用java命令測試出支持的最大值)

修改bin/catalina.bat文件設置參數

-Xms:設置JVM初始內存大小(默認是物理內存的1/64)

-Xmx:設置JVM可以使用的最大內存(默認是物理內存的1/4,建議:物理內存80%)

-Xmn:設置JVM最小內存(128-256m就夠了,一般不設置)

默認空餘堆內存小於40%時,JVM就會增大堆直到-Xmx的最大限制;空餘堆內存大於70%時,JVM會減少堆直到-Xms的最小限制。因此伺服器一般設置-Xms、

-Xmx相等以避免在每次GC 後調整堆的大小。

在較大型的應用項目中,默認的內存是不夠的,有可能導致系統無法運行。常見的問題是報Tomcat內存溢出錯誤「java.lang.OutOfMemoryError:Java heap space」,從而

導致客戶端顯示500錯誤。

-XX:PermSize :為JVM啟動時Perm的內存大小

-XX:MaxPermSize :為最大可佔用的Perm內存大小(默認為32M)

-XX:MaxNewSize,默認為16M

PermGen space的全稱是Permanent Generationspace,是指內存的永久保存區域,這塊內存主要是被JVM存放Class和Meta信息的,Class在被Loader時就會被放到

PermGenspace中,它和存放類實例(Instance)的Heap區域不同,GC(GarbageCollection)不會在主程序運行期對PermGenspace進行清理,所以如果你的應用中有很CLASS的

話,就很可能出現「java.lang.OutOfMemoryError:PermGen space」錯誤。

對於WEB項目,jvm載入類時,永久域中的對象急劇增加,從而使jvm不斷調整永久域大小,為了避免調整),你可以使用更多的參數配置。如果你的WEBAPP下都用了大量的第三

方jar, 其大小超過了jvm默認的大小,那麼就會產生此錯誤信息了。

其它參數:

-XX:NewSize :默認為2M,此值設大可調大新對象區,減少FullGC次數

-XX:NewRatio :改變新舊空間的比例,意思是新空間的尺寸是舊空間的1/8(默認為8)

-XX:SurvivorRatio :改變Eden對象空間和殘存空間的尺寸比例,意思是Eden對象空間的尺寸比殘存空間大survivorRatio+2倍(預設值是10)

-XX:userParNewGC 可用來設置並行收集【多CPU】

-XX:ParallelGCThreads 可用來增加並行度【多CPU】

-XXUseParallelGC 設置後可以使用並行清除收集器【多CPU】

詳細配置可參看這篇幾篇文章:

https://www.cnblogs.com/jianyungsun/p/6911380.html

https://www.cnblogs.com/qmfsun/p/5396710.html

原文鏈接: https://blog.csdn.net/dc282614966/article/details/81186783

B. linux tomcat 7.0內存一般設置多大合適

為了解決tomcat在進行大並發請求時,出現內存溢出的問題,請修改tomcat的內存大小,其中分為以下兩種方式:一、使用catalina.bat等命令行方式運行的tomcat查看系統是否能支持所填最大內存命令:java-Xmx1024m-version,當所填值不合法時

C. linux下tomcat6內存如何設置(詳細)我在catalina.sh裡面加了JAVA_OPTS每次重啟報指令無效!!

這樣寫:
declare -x JAVA_OPTS="-Xms128m -Xmx256"

"declare -x"一定要加,不然就會報-x指令無效,還有後面的引號也要注意加上

D. linux 怎麼給tomcat增加內存

在bin/catalina.bat(windows系統tomcat)或者bin/catalina.sh(Linux系統tomcat)中設置變數,示例如下: JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m -Xms800m -Xmx800m -XX:MaxNewSize=256m" Xms是最小內存,Xmx是最大內存,P...

E. 有關tomcat的jvm設置的,在linux下設置成1.5g的時候就啟動不起來了,這是怎麼回事,難道是操作系統支持的堆

與jvm有關,32位的jvm直支持 不到1.5G的內存,具體測試方法網上有很多種可用這個試一下.,java -Xmx1024M -version 可以這樣來, 如果jvm是64位的,則不受限制,

F. linux下 tomcat能用多大內存

這取決於你的物理內存大小,其實不是TOMCAT能用多大,而是JVM的一些默認參數問題,如果你不改JAVA_OPTS,那麼大約能占物理內存的1/4——1/2(但最多應該不會超過2G)。

如果你自己改了JAVA_OPTS,那就最大可以用把內存用完

G. 如何更改tomcat7及以上版本內存設置

工具/原料

能夠打開bat文件或者sh文件的編輯器

安裝tomcat

Services版本tomcat 內存和perm 設置

進入 {tomcat 安裝目錄}in 目錄下,i.e,C:Tomcat 8.0in。 Services版本安裝下會有名字類似於Tomcat8w.exe 的文件。如圖所示:

注意事項

格式安裝經驗中的格式書寫,不能擅自加入空格,否則設置可能會失效。

參數值大小根據實際需求設置,設置過小,web應用將不能成功部署。

H. 如何設置tomcat6內存大小 linux

這樣寫:
declare -x JAVA_OPTS="-Xms128m -Xmx256"

"declare -x"一定要加,不然就會報-x指令無效,還有後面的引號也要注意加上

I. linux tomcat jvm內存 多少合適

為了解決tomcat在進行大並發請求時,出現內存溢出的問題,請修改tomcat的內存大小,其中分為以下兩種方式:
一、使用 catalina.bat 等命令行方式運行的 tomcat
查看系統是否能支持所填最大內存命令:java -Xmx1024m -version,當所填值不合法時,執行該命令將報錯
1、修改 tomcat\bin\Catalina.bat 文件
windows環境下:
在166行左右
rem Execute Java with the applicable properties 」以下每行
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
在 %DEBUG_OPTS% 後面添加-Xms256m -Xmx512m
linux環境下:
打開在Tomcat的安裝目錄的bin文件的catalina.sh文件,進入編輯狀態.
在注釋後面加上如下腳本:
JAVA_OPTS='-Xms512m -Xmx1024m'
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"
其中 JAVA_OPTS='-Xms512m -Xmx1024m' 是設置Tomcat使用的內存的大小.
-XX:PermSize=64M -XX:MaxPermSize=256m 指定類空間(用於載入類)的內存大小
保存後,重新以命令行的方式運行 tomcat ,即可,然後通過最後面介紹的如何觀察tomcat現有內存情況的方法進行查看是否已經變更成功。

二、使用 系統中的 「服務」,或者開始菜單的可執行程序運行的tomcat
1、關閉 現在正在運行的tomcat

2.1 [注意]
[高版本tomcat配置方法]
如果是tomcat 5.5 或者是 5.0.28 之後的版本,在 Java 選項卡中,下方,會有
Inital memory Pool:
Maximum memory Pool:
Thread stack size:
三個輸入框,在這里即可不用做上面的操作,直接配置內存大小,只需要設置
Inital memory Pool 為 256
Maximum memory Pool 為 512
點擊確定後,重啟tomcat 生效

如果您是低版本的tomcat,發現沒有上面那幾個錄入框,請看下面的操作步驟

[低版本tomcat配置方法]
在開始菜單中,找到「Apache Tomcat 5.0」,並選擇「Configure Tomcat」,在彈出的對話框窗口中,切換到 Java VM 選項卡,並在 Java Options 輸入框的最前面輸入
-Xms256m -Xmx512m
即輸入框中的內容會像下面的代碼(與自己的環境有所區別)
-Xms256m -Xmx512m
-Dcatalina.home="C:\tomcat5"
-Djava.endorsed.dirs="C:\tomcat5\common\endorsed"
-Xrs
設置完後,點擊「確定」,並重啟tomcat即可。

三、查看現有tomcat的內存大小情況
1、啟動tomcat
2、訪問 ,並輸入您在安裝tomcat時輸入的用戶與口令,如 admin ,密碼 admin(密碼是您在tomcat安裝時輸入的)
註:添加用戶,修改conf/tomcat-users.xml

3、進入了Server Status頁面,可以在JVM表格中看到
Free memory: 241.80 MB Total memory: 254.06 MB Max memory: 508.06 MB
上面的文字即代表了,當前空閑內存、當前總內存、最大可使用內存三個數據。
確定了最大內存足夠大時,tomcat即可正常運轉
最後總結下內存設置中常用的幾個參數
(1)-Xms,jvm啟動時,初始分配的堆/棧內存
(2)-Xmx,JVM最大允許分配的堆/棧內存,按需分配
(3)-Xss,設定每個線程的堆棧大小
(4)-XX:PermSize,JVM初始分配的非堆內存
(5)-XX:MaxPermSize,JVM最大允許分配的非堆內存,按需分配
舉例:
-Xms256m -Xms512m -XX:PermSize=64m -XX:MaxPermSize=128m

J. 如何優化tomcat配置

Tomcat有很多方面,我從內存、並發、緩存四個方面介紹優化方法。
一.Tomcat內存優化

Tomcat內存優化主要是對 tomcat 啟動參數優化,我們可以在 tomcat 的啟動腳本 catalina.sh 中設置 JAVA_OPTS 參數。
JAVA_OPTS參數說明
-server 啟用jdk 的 server 版;
-Xms java虛擬機初始化時的最小內存;
-Xmx java虛擬機可使用的最大內存;
-XX:PermSize 內存永久保留區域
-XX:MaxPermSize 內存最大永久保留區域
伺服器參數配置

現公司伺服器內存一般都可以加到最大2G ,所以可以採取以下配置:

JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'

配置完成後可重啟Tomcat ,通過以下命令進行查看配置是否生效:
首先查看Tomcat 進程號:

sudo lsof -i:9027

我們可以看到Tomcat 進程號是 12222 。
查看是否配置生效:

sudo jmap – heap 12222

我們可以看到MaxHeapSize 等參數已經生效。、
二.Tomcat並發優化

1.Tomcat連接相關參數

在Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中

1>參數說明

minProcessors:最小空閑連接線程數,用於提高系統處理性能,默認值為 10
maxProcessors:最大連接線程數,即:並發處理的最大請求數,默認值為 75
acceptCount:允許的最大連接數,應大於等於 maxProcessors ,默認值為 100
enableLookups:是否反查域名,取值為: true 或 false 。為了提高處理能力,應設置為 false
connectionTimeout:網路連接超時,單位:毫秒。設置為 0 表示永不超時,這樣設置有隱患的。通常可設置為30000 毫秒。
其中和最大連接數相關的參數為maxProcessors 和 acceptCount 。如果要加大並發連接數,應同時加大這兩個參數。
web server允許的最大連接數還受制於操作系統的內核參數設置,通常 Windows 是 2000 個左右, Linux 是 1000 個左右。

2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="100"
maxProcessors="1000"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>

2.調整連接器connector的並發處理能力

1>參數說明

maxThreads 客戶請求最大線程數
minSpareThreads Tomcat初始化時創建的 socket 線程數
maxSpareThreads Tomcat連接器的最大空閑 socket 線程數
enableLookups 若設為true, 則支持域名解析,可把 ip 地址解析為主機名
redirectPort 在需要基於安全通道的場合,把客戶請求轉發到基於SSL 的 redirectPort 埠
acceptAccount 監聽埠隊列最大數,滿了之後客戶請求會被拒絕(不能小於maxSpareThreads )
connectionTimeout 連接超時
minProcessors 伺服器創建時的最小處理線程數
maxProcessors 伺服器同時最大處理線程數
URIEncoding URL統一編碼

2>Tomcat中的配置示例

<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>

3.Tomcat緩存優化

1>參數說明

c ompression 打開壓縮功能
compressionMinSize 啟用壓縮的輸出內容大小,這裡面默認為2KB
compressableMimeType 壓縮類型
connectionTimeout 定義建立客戶連接超時的時間. 如果為 -1, 表示不限制建立客戶連接的時間

2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>

4.參考配置

1>舊有的配置

參考網路對伺服器做過如下配置,拿出來分享下:

<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="200"
redirectPort="8443"
disableUploadTimeout="true" />

後來發現在訪問量達到3 百萬多的時候出現性能瓶頸。
2>更改後的配置

<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>

熱點內容
日產高配有哪些配置 發布:2025-05-12 10:32:16 瀏覽:474
大眾朗逸哪個配置值得入手 發布:2025-05-12 10:31:20 瀏覽:503
壓縮包的後綴 發布:2025-05-12 10:20:35 瀏覽:939
煙台招聘編程 發布:2025-05-12 10:04:21 瀏覽:52
sql查詢所有表名 發布:2025-05-12 10:01:28 瀏覽:663
用python編譯器的簡單代碼 發布:2025-05-12 09:48:40 瀏覽:357
香港多ip站群伺服器租用 發布:2025-05-12 09:33:16 瀏覽:894
kaliapk編譯 發布:2025-05-12 08:47:56 瀏覽:357
健身穿壓縮衣 發布:2025-05-12 08:44:53 瀏覽:479
vps撥號伺服器搭建 發布:2025-05-12 08:35:20 瀏覽:310