楦熸楂橀鍏堟尟緲咃紝浜烘眰涓婅繘鍏堣涔︺傛湰鏂囨槸鍘熶功鐨勭9绔?綰跨▼鐨勭洃鎺у強鍏舵棩甯稿伐浣滀腑濡備綍鍒嗘瀽閲岀殑9.3.3鑺傚父瑙佺殑鍐呭瓨婧㈠嚭鐨勪笁縐嶆儏鍐點?/span>3. 甯歌鐨勫唴瀛樻孩鍑虹殑涓夌鎯呭喌錛?/span>
1錛塉VM Heap錛堝爢錛夋孩鍑猴細java.lang.OutOfMemoryError: Java heap space
JVM鍦ㄥ惎鍔ㄧ殑鏃跺欎細鑷姩璁劇疆JVM Heap鐨勫鹼紝 鍙互鍒╃敤JVM鎻愪緵鐨?Xmn -Xms -Xmx絳夐夐」鍙繘琛岃緗侶eap鐨勫ぇ灝忔槸Young Generation 鍜孴enured Generaion 涔嬪拰銆傚湪JVM涓鏋?8%鐨勬椂闂存槸鐢ㄤ簬GC,涓斿彲鐢ㄧ殑Heap size 涓嶈凍2%鐨勬椂鍊欏皢鎶涘嚭姝ゅ紓甯鎬俊鎭?/span>
瑙e喅鏂規硶錛氭墜鍔ㄨ緗甁VM Heap錛堝爢錛夌殑澶у皬銆?/span>
2錛塒ermGen space婧㈠嚭錛?java.lang.OutOfMemoryError: PermGen space
PermGen space鐨勫叏縐版槸Permanent Generation space,鏄寚鍐呭瓨鐨勬案涔呬繚瀛樺尯鍩熴備負浠涔堜細鍐呭瓨婧㈠嚭錛岃繖鏄敱浜庤繖鍧楀唴瀛樹富瑕佹槸琚獼VM瀛樻斁Class鍜孧eta淇℃伅鐨勶紝Class鍦ㄨLoad鐨勬椂鍊欒鏀懼叆PermGen space鍖哄煙錛屽畠鍜屽瓨鏀綢nstance鐨凥eap鍖哄煙涓嶅悓錛宻un鐨?GC涓嶄細鍦ㄤ富紼嬪簭榪愯鏈熷PermGen space榪涜娓呯悊錛屾墍浠ュ鏋滀綘鐨凙PP浼氳澆鍏ュ緢澶欳LASS鐨勮瘽錛屽氨寰堝彲鑳藉嚭鐜癙ermGen space婧㈠嚭銆備竴鑸彂鐢熷湪紼嬪簭鐨勫惎鍔ㄩ樁孌點?/span>
瑙e喅鏂規硶錛?閫氳繃-XX:PermSize鍜?XX:MaxPermSize璁劇疆姘鎬箙浠eぇ灝忓嵆鍙?/span>
3錛夋爤婧㈠嚭錛?java.lang.StackOverflowError : Thread Stack space
鏍堟孩鍑轟簡錛孞VM渚濈劧鏄噰鐢ㄦ爤寮忕殑铏氭嫙鏈猴紝榪欎釜鍜孋鍜孭ascal閮芥槸涓鏍風殑銆傚嚱鏁扮殑璋冪敤榪囩▼閮戒綋鐜板湪鍫嗘爤鍜岄鏍堜笂浜嗐傝皟鐢ㄦ瀯閫犲嚱鏁扮殑 “灞?#8221;澶浜嗭紝浠ヨ嚧浜庢妸鏍堝尯婧㈠嚭浜嗐?閫氬父鏉ヨ錛屼竴鑸爤鍖鴻繙榪滃皬浜庡爢鍖虹殑錛屽洜涓哄嚱鏁拌皟鐢ㄨ繃紼嬪線寰涓嶄細澶氫簬涓婂崈灞傦紝鑰屽嵆渚挎瘡涓嚱鏁拌皟鐢ㄩ渶瑕?1K鐨勭┖闂達紙榪欎釜澶х害鐩稿綋浜庡湪涓涓狢鍑芥暟鍐呭0鏄庝簡256涓猧nt綾誨瀷鐨勫彉閲忥級錛岄偅涔堟爤鍖轟篃涓嶈繃鏄渶瑕?MB鐨勭┖闂淬傞氬父鏍堢殑澶у皬鏄?-2MB鐨勩傞氫織涓鐐硅灝辨槸鍗曠嚎紼嬬殑紼嬪簭闇瑕佺殑鍐呭瓨澶ぇ浜嗐?閫氬父閫掑綊涔熶笉瑕侀掑綊鐨勫眰嬈¤繃澶氾紝寰堝鏄撴孩鍑恒?/span>
瑙e喅鏂規硶錛?錛氫慨鏀圭▼搴忋?錛氶氳繃 -Xss: 鏉ヨ緗瘡涓嚎紼嬬殑Stack澶у皬鍗沖彲銆?/span>
4. 鎵浠erver瀹瑰櫒鍚姩鐨勬椂鍊欐垜浠粡甯稿叧蹇冨拰璁劇疆JVM鐨勫嚑涓弬鏁板涓嬶紙璇︾粏鐨凧VM鍙傛暟璇峰弬鐪嬮檮褰曚笁錛夛細
-Xms錛歫ava Heap鍒濆澶у皬錛?榛樿鏄墿鐞嗗唴瀛樼殑1/64銆?/span>
-Xmx錛歛va Heap鏈澶у鹼紝涓嶅彲瓚呰繃鐗╃悊鍐呭瓨銆?/span>
-Xmn錛歽oung generation鐨刪eap澶у皬錛屼竴鑸緗負Xmx鐨?銆?鍒嗕箣涓 銆傚澶у勾杞諱唬鍚?灝嗕細鍑忓皬騫磋佷唬澶у皬錛屽彲浠ユ牴鎹洃鎺у悎鐞嗚緗?/span>
-Xss錛氭瘡涓嚎紼嬬殑Stack澶у皬錛岃屾渶浣沖煎簲璇ユ槸128K,榛樿鍊煎ソ鍍忔槸512k銆?/span>
-XX:PermSize錛氳瀹氬唴瀛樼殑姘鎬箙淇濆瓨鍖哄垵濮嬪ぇ灝忥紝緙虹渷鍊間負64M銆?/span>
-XX:MaxPermSize錛氳瀹氬唴瀛樼殑姘鎬箙淇濆瓨鍖烘渶澶уぇ灝忥紝緙虹渷鍊間負64M銆?/span>
-XX:SurvivorRatio錛欵den鍖轟笌Survivor鍖虹殑澶у皬姣斿?璁劇疆涓?,鍒欎袱涓猄urvivor鍖轟笌涓涓狤den鍖虹殑姣斿間負2:8,涓涓猄urvivor鍖哄崰鏁翠釜騫磋交浠g殑1/10
-XX:+UseParallelGC錛欶騫磋交浠d嬌鐢ㄥ茍鍙戞敹闆?鑰屽勾鑰佷唬浠嶆棫浣跨敤涓茶鏀墮泦.
-XX:+UseParNewGC錛氳緗勾杞諱唬涓哄茍琛屾敹闆?JDK5.0浠ヤ笂,JVM浼氭牴鎹郴緇熼厤緗嚜琛岃緗?鎵鏃犻渶鍐嶈緗鍊箋?/span>
-XX:ParallelGCThreads錛氬茍琛屾敹闆嗗櫒鐨勭嚎紼嬫暟錛屽兼渶濂介厤緗笌澶勭悊鍣ㄦ暟鐩浉絳?鍚屾牱閫傜敤浜嶤MS銆?/span>
-XX:+UseParallelOldGC錛氬勾鑰佷唬鍨冨溇鏀墮泦鏂瑰紡涓哄茍琛屾敹闆?Parallel Compacting)銆?/span>
-XX:MaxGCPauseMillis錛氭瘡嬈″勾杞諱唬鍨冨溇鍥炴敹鐨勬渶闀挎椂闂?鏈澶ф殏鍋滄椂闂?錛屽鏋滄棤娉曟弧瓚蟲鏃墮棿,JVM浼氳嚜鍔ㄨ皟鏁村勾杞諱唬澶у皬,浠ユ弧瓚蟲鍊箋?/span>
-XX:+ScavengeBeforeFullGC錛欶ull GC鍓嶈皟鐢╕GC,榛樿鏄痶rue銆?/span>
瀹炰緥濡傦細JAVA_OPTS=”-Xms4g -Xmx4g -Xmn1024m -XX:PermSize=320M -XX:MaxPermSize=320m -XX:SurvivorRatio=6″

]]>