簡體   English   中英

在運行tomcat的redhat機器上有效的Xmx值是多少

[英]What is effective Xmx value on my redhat machine running tomcat

我正在具有1GB RAM的RHEL 7計算機上運行tomcat。 我已經設置了tomcat和java,使其都具有Xmx = 1G,以下語句支持該功能,

[root @ ip-172-31-28-199 bin]#java -XX:+ PrintFlagsFinal -version | grep HeapSize提取了_JAVA_OPTIONS:-Xmx1g uintx ErgoHeapSizeLimit = 0 {product} uintx HeapSizePerGCThread = 87241520 {product} uintx InitialHeapSize:= 16777216 {product} uintx LargePageHeapSizeThreshold = 134217728 {product} uintx MaxHedSize 24 = 134217737 {product} uintx MaxHeap24。 0_161"

tomcat 2799 1 1 02:21嗎? 00:00:07 / usr / bin / java -Djava.util.logging.config.file = / opt / tomcat / conf / logging.properties -Djava.util.logging.manager = org.apache.juli.ClassLoaderLogManager -Djava .awt.headless = true -Djdk.tls.ephemeralDHKeySize = 2048 -Djava.protocol.handler.pkgs = org.apache.catalina.webresources -Xmx1024M -Dignore.endorsed.dirs = -classpath / opt / tomcat / bin / bootstrap。 jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base = / opt / tomcat -Dcatalina.home = / opt / tomcat -Djava.io.tmpdir = / opt / tomcat / temp org.apache.catalina .startup.Bootstrap啟動

但是,當我遇到異常時,會收到以下消息,

沒有足夠的內存,Java運行時環境無法繼續。

本機內存分配(mmap)無法映射244043776字節以提交保留的內存。

我知道Java永遠不會要求1GB內存,因為那是機器的總內存。 但是為什么我提到這個尺寸會出錯?

也嘗試添加-Xms1g ,這樣它最初會分配所有內存,並且您會發現它甚至無法啟動Tomcat。

如果要盡可能多地將內存壓縮到Tomcat中(不建議這樣做) ,請慢慢減小兩個數字( mxms值相同),直到Tomcat啟動。

這是您可以給Tomcat的絕對最大值,但是您不應該這樣做。 Java運行時可能仍需要更多,而OS偶爾需要更多,因此您應該給Tomcat少於絕對的最大值。

找到數字后,可以根據需要再次使-Xms未定義狀態。

有一個有趣的帖子這里是建議禁用OOPS。 您正在運行物理服務器還是虛擬機?

我同意1G服務器的尺寸過小,應該運行Xmx = 512M並允許一些交換(默認值為vm.swappiness = 60,對於小型Tomcat應該可以)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM