jvm參數(shù)設(shè)置成多少合適 如何設(shè)置Java虛擬機(jī)JVM啟動內(nèi)存參數(shù)?
如何設(shè)置Java虛擬機(jī)JVM啟動內(nèi)存參數(shù)?Java虛擬機(jī)JVM的啟動內(nèi)存參數(shù)設(shè)置方法如下:Tomcat修改TOMCAT_,參數(shù)設(shè)置在[echo使用CATALINA_BAS:。alwayspretouc
如何設(shè)置Java虛擬機(jī)JVM啟動內(nèi)存參數(shù)?
Java虛擬機(jī)JVM的啟動內(nèi)存參數(shù)設(shè)置方法如下:Tomcat修改TOMCAT_,參數(shù)設(shè)置在[echo使用CATALINA_BAS:。
alwayspretouch參數(shù)?
使用[-XX: always pr
問下先輩們,java的實(shí)習(xí)生應(yīng)該掌握的知識需要到何種程度?
Java編程繼續(xù)占據(jù)最流行編程語言的前列,很多人想從事Java開發(fā)。如果是Java初學(xué)者,需要了解和掌握一些核心技術(shù)。
如何修改Tomcat的JVM啟動參數(shù)?
設(shè)置JVM參數(shù)通常有三種一種是用eclipse設(shè)置;二是使用java小程序進(jìn)行設(shè)置;三是直接修改配置。
文件。
這里我們介紹修改配置文件的方法。配置的使用有兩種:一種是修改;二是修復(fù)。
改變。這兩種方法的區(qū)別在于,如果修改為,則在tomcat服務(wù)器停止后,該配置項(xiàng)仍然存在。
有效。
修改JVM配置文件有三種語法:
第一個語法:
設(shè)置CATALINA _ OPTS‐xmx 512m‐xms 512m‐xmn 64m‐Xss2m
第二個語法:
設(shè)置JAVA _ OPTS‐xmx 512m‐xms 512m‐xmn 64m‐Xss2m
第三種:
JAVA_OPTS
metaspace默認(rèn)大?。?/h2>
在Java8及以后的版本中,我們可以使用以下命令來設(shè)置元空間的初始大小和最大大小:-xx :metaspacesize-設(shè)置元空間的初始(和最小大小)。-xx:maxmetaspacesizen-設(shè)置元空間的最大大小。
元空間大小是多少?
從我們的角度來看,應(yīng)該注意,元空間的默認(rèn)最大大小是無限的。相反,java7和更早版本中PermGen的默認(rèn)最大大小在32位JVM上是64mb,在64位JVM上是82mb。
Metaspace會收集垃圾嗎?
一旦類元數(shù)據(jù)的使用達(dá)到 "MaxMetaspaceSize ",它將觸發(fā)死類和類加載器的垃圾收集。顯然,有必要適當(dāng)?shù)乇O(jiān)控和調(diào)整元空間,以限制這種垃圾收集的頻率延遲。
Java中的元空間內(nèi)存是什么?
簡單來說,元空間是一個新的內(nèi)存空間——從Java8版本開始;它取代了舊的PermGen內(nèi)存空間。最大的區(qū)別是它如何處理內(nèi)存分配。因此,默認(rèn)情況下,本地內(nèi)存區(qū)域會自動增長。
Java8中PermGen空格的替換是什么?
在Java8中,元空間取代了PermGen空間。PermSize和MaxPermSizeJVM參數(shù)將被忽略,如果它們在啟動時出現(xiàn),將發(fā)出警告?,F(xiàn)在,類元數(shù)據(jù)的大部分分配都是從本機(jī)內(nèi)存中分配的。
PermGen是permanent generation的縮寫,是一種特殊的堆空間,與主Java堆分離,JVM跟蹤主堆中加載的類的元數(shù)據(jù)。在Java8中,PermGen被重命名為Metaspace——有一些細(xì)微的區(qū)別。從我們的角度來看,應(yīng)該注意的是,元空間有一個無限制的默認(rèn)最大大小。相反,java7和更早版本中PermGen的默認(rèn)最大大小在32位JVM上是64mb,在64位版本上是82mb。當(dāng)然,這些與初始尺寸不同。Java7及更早版本的初始PermGen空間約為12-21MB。
值得一提的是,在Java7之前,內(nèi)部字符串通常保存在PermGen上。
這將導(dǎo)致:永久內(nèi)存溢出。
每當(dāng)需要調(diào)整PermGen/Metaspace的大小時,JVM就會像調(diào)整標(biāo)準(zhǔn)堆一樣進(jìn)行調(diào)整。調(diào)整這些空間的大小需要一個完整的GC,這通常是一個開銷很大的操作。通常在啟動時加載許多類時可以觀察到這種情況。尤其是當(dāng)應(yīng)用程序依賴于許多外部庫時。如果有許多完整的gc s啟動期間,通常是因?yàn)檫@個。在這種情況下,增加初始大小可以提高啟動性能。
要增加PermGen,我們有以下命令:
-xx:permsizen-設(shè)置永久生成的空間的初始(和最小)大小。
-XX:maxPermissizen-設(shè)置永久生成的空間的最大大小。
在Java 8和更高版本中,我們可以使用以下命令來設(shè)置元空間的初始大小和最大大小:
-xx:metaspacesized-設(shè)置元空間的初始(和最小)大小。
-xx:maxmetaspacesizen-設(shè)置元空間的最大大小。
對于與Java進(jìn)程在內(nèi)存空間中使用的區(qū)域相關(guān)的大小調(diào)整,需要考慮以下幾個方面。
Java堆:管理Java對象的空間
元空間:管理信息的空間。
其他空間:java vm和本地方法使用的堆棧空間和C堆空間。
你可以用以下兩種方法來調(diào)整。調(diào)整上述空間的大小:
注意:
如果上面計算的元空間的最大大小小于64 MB,則該空間的最大大小設(shè)置為64 MB。Java堆和其他空間的最大大小計算如下:((MaxSizeFallSpac:ma metaspacesize)中指定了設(shè)置最大大小的Java選項(xiàng),則每個空間的最大大小是根據(jù) "用JavaOPTS環(huán)境變量 "。
在具有高多重性的請求或具有深度調(diào)用堆棧的方法的情況下,如果進(jìn)程輸出以下消息并失敗,這意味著超過了容器中的最大內(nèi)存值,因此 "指定使用JAVAOPTS環(huán)境變量 "是需要的。
記憶中的exit_description:,: 143
使用JAVA_OPTS環(huán)境變量指定元空間的默認(rèn)大小。
指定一個Java選項(xiàng),該選項(xiàng)設(shè)置Java_OPTS環(huán)境變量中每個空格的大小。
估計每個空間需要的最大大小,用Java選項(xiàng)設(shè)置,使空間的總大小不超過(maxSizeOfAllSpac:maxmetaspacesize。
注意:
請參考下表,并確保空間的總最大大小不超過(maxSizeOfAllSpaces(默認(rèn)為1gb)-300 MB)的結(jié)果。不要省略表中的兩個Java選項(xiàng),因?yàn)槿绻÷粤酥付ㄗ畲蟠笮〉腏ava選項(xiàng),java VM將自動確定最大大小。
對于剩余的空間,沒有Java選項(xiàng)來配置其他空間(maxSizeOfAllSpaces減去maxJavaHeapSize和maxMetaspac:maxmetaspacesize指定。下列字符可以指定為單位:
對于KB(千字節(jié)): "k "or "k "
對于MB(兆字節(jié)): "m "or "m "
對于GB: "g "or "g "