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