自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Tomcat運(yùn)行Java Web內(nèi)存溢出總結(jié)

開發(fā) 后端
如果JVM里運(yùn)行的程序, 它的內(nèi)存堆和持久存儲(chǔ)區(qū)域的都滿了,這個(gè)時(shí)候程序還想創(chuàng)建對(duì)象實(shí)例的話,垃圾收集器就會(huì)啟動(dòng),試圖釋放足夠的內(nèi)存來創(chuàng)建這個(gè)對(duì)象。這個(gè)時(shí)候如果垃圾收集器 沒有能力釋放出足夠的內(nèi)存,它就會(huì)拋出OutOfMemoryError內(nèi)存溢出錯(cuò)誤。

如果JVM里運(yùn)行的程序, 它的內(nèi)存堆和持久存儲(chǔ)區(qū)域的都滿了,這個(gè)時(shí)候程序還想創(chuàng)建對(duì)象實(shí)例的話,垃圾收集器就會(huì)啟動(dòng),試圖釋放足夠的內(nèi)存來創(chuàng)建這個(gè)對(duì)象。這個(gè)時(shí)候如果垃圾收集器 沒有能力釋放出足夠的內(nèi)存,它就會(huì)拋出OutOfMemoryError內(nèi)存溢出錯(cuò)誤。

SUN JVM的內(nèi)存管理方式:

SUN的JVM是類似人類家族,也就是在一個(gè)地方創(chuàng)建對(duì)象,在它長(zhǎng)期占據(jù)空間之前給它多次死亡的機(jī)會(huì),SUN JVM會(huì)劃分為:

1. 年輕的一代(Young generation),包括EDEN和2個(gè)幸存者空間(出發(fā)地和目的地the From space and the To space)

2. 老一代(Old generation)

3. ***的一代(Permanent generation)

Java虛擬機(jī)的運(yùn)行時(shí)數(shù)據(jù)區(qū)一般分類如下(不一定是物理劃分):

1. 堆:主要存放對(duì)象實(shí)例,線程共享

2. 棧:主要存儲(chǔ)特定線程的方法調(diào)用狀態(tài),線程獨(dú)占

3. 本地方法棧:存儲(chǔ)本地方法的調(diào)用狀態(tài),線程獨(dú)占

4. PC寄存器:學(xué)過操作系統(tǒng)課程的都知道,線程獨(dú)占

5. 方法區(qū):主要存儲(chǔ)了類型信息,線程共享

因此,在拋出內(nèi)存溢出錯(cuò)誤的時(shí)候,一般都會(huì)提示內(nèi)存泄露的種類,一般也都是按照區(qū)域進(jìn)行劃分:

1. 堆(heap)內(nèi)存泄漏java.lang.OutOfMemoryError: Javaheap space:大家都比較熟悉 ,通過設(shè)置-Xms2048m -Xmx4096m可以解決

2. 棧(stack)內(nèi)存泄漏:當(dāng)前線程運(yùn)行期間維護(hù)的中間變量等信息過多,例如常見的死循環(huán)引起stack over flow

3. 方法區(qū)(permanent heap)內(nèi)存泄漏,即java.lang.OutOfMemoryError: PermGen space:發(fā)生的原因和類型裝載、類型卸載有直接的關(guān)系,通過設(shè)置-XX:MaxNewSize=256m -XX:MaxPermSize=256m可以解決。

一般情況下,當(dāng)服務(wù)器內(nèi)存過小,而提供了大量的訪問服務(wù)時(shí),可能會(huì)緩存過多的數(shù)據(jù)對(duì)象造成堆內(nèi)存溢出,當(dāng)web應(yīng)用不斷擴(kuò)大,加載的lib庫達(dá)到一定大?。?M)后,就容易報(bào)PermGen OOM,也就是方法區(qū)溢出。

在Linux服務(wù)器中將參數(shù)寫入環(huán)境變量:

  1. export CATALINA_OPTS="-Xms2048m -Xmx4096m" 
  2. export JAVA_OPTS="-XX:MaxNewSize=256m -XX:MaxPermSize=256m" 

Xmx ***不要超過服務(wù)器物理內(nèi)存的80%

原文鏈接:http://blog.csdn.net/eagleking012/article/details/7071638

 【編輯推薦】

  1. Java NIO如何處理慢速的連接
  2. Java NIO2 AIO開發(fā)核心流程
  3. Java NIO開發(fā)實(shí)例
  4. Java NIO 聊天室實(shí)例
  5. Java NIO 深入研究
責(zé)任編輯:林師授 來源: eagleking012的博客
相關(guān)推薦

2010-09-26 15:53:25

JVM內(nèi)存溢出

2024-03-11 08:22:40

Java內(nèi)存泄漏

2017-02-24 15:28:33

Android內(nèi)存溢出方法總結(jié)

2019-09-24 08:56:00

內(nèi)存Redis使用

2018-04-17 14:41:41

Java堆內(nèi)存溢出

2012-05-29 16:30:33

Tomcat內(nèi)存溢出

2021-03-06 10:25:19

內(nèi)存Java代碼

2013-08-02 10:06:36

Android內(nèi)存溢出

2009-08-18 16:45:50

Tomcat內(nèi)存溢出

2024-09-09 09:41:03

內(nèi)存溢出golang開發(fā)者

2015-03-30 11:18:50

內(nèi)存管理Android

2010-09-25 11:23:15

Java內(nèi)存泄露

2009-06-16 11:01:14

Java內(nèi)存溢出

2020-08-10 17:49:25

JVM內(nèi)存溢出

2010-09-17 16:18:43

Java內(nèi)存溢出

2021-02-03 15:12:08

java內(nèi)存溢出

2019-02-28 14:28:35

內(nèi)存泄露tomcat調(diào)優(yōu)

2012-05-15 02:04:22

JVMJava

2012-03-14 10:58:27

Java

2020-05-09 13:49:00

內(nèi)存空間垃圾
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)