日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java中關于OOM的場景及解決方法

1、OOM for Heap=>例如:java.lang.OutOfMemoryError: Java heap space

十載的伊犁網(wǎng)站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都營銷網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整伊犁建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“伊犁網(wǎng)站設計”,“伊犁網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

分  析

此OOM是由于JVM中heap的***值不滿足需要,將設置heap的***值調高即可,參數(shù)樣例為:-Xmx2G

解決方法

調高heap的***值,即-Xmx的值調大。2、OOM for Perm=>例如:java.lang.OutOfMemoryError: Java perm space

分  析

此OOM是由于JVM中perm的***值不滿足需要,將設置perm的***值調高即可,參數(shù)樣例為:-XX:MaxPermSize=512M

解決方法

調高heap的***值,即-XX:MaxPermSize的值調大。

另外,注意一點,Perm一般是在JVM啟動時加載類進來,如果是JVM運行較長一段時間而不是剛啟動后溢出的話,很有可能是由于運行時有類被動態(tài)加載進來,此時建議用CMS策略中的類卸載配置。

如:-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled3、OOM for GC=>例如:java.lang.OutOfMemoryError: GC overhead limit exceeded

分  析

此OOM是由于JVM在GC時,對象過多,導致內存溢出,建議調整GC的策略,在一定比例下開始GC而不要使用默認的策略,或者將新代和老代設置合適的大小,需要進行微調存活率。

解決方法

改變GC策略,在老代80%時就是開始GC,并且將-XX:SurvivorRatio(-XX:SurvivorRatio=8)和-XX:NewRatio(-XX:NewRatio=4)設置的更合理。4、OOM for native thread created=>

如:java.lang.OutOfMemoryError: unable to create new native thread

分  析

參考如下:

(MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads

MaxProcessMemory 指的是一個進程的***內存

JVMMemory JVM內存

ReservedOsMemory 保留的操作系統(tǒng)內存

ThreadStackSize 線程棧的大小

如果JVM內存調的過大或者可利用率小于20%,可以建議將heap及perm的***值下調,并將線程棧調小,即-Xss調小,如:-Xss128k

解決方法

在JVM內存不能調小的前提下,將-Xss設置較小,如:-Xss:128k

5、OOM for allocate huge array=>例如:Exception in thread "main": java.lang.OutOfMemoryError: Requested array size exceeds VM limit

分  析

此類信息表明應用程序(或者被應用程序調用的APIs)試圖分配一個大于堆大小的數(shù)組。例如,如果應用程序new一個數(shù)組對象,大小為512M,但是***堆大小為256M,因此OutOfMemoryError會拋出,因為數(shù)組的大小超過虛擬機的限制。

解決方法

(1)、首先檢查heap的-Xmx是不是設置的過小

(2)、如果heap的-Xmx已經足夠大,那么請檢查應用程序是不是存在bug,例如:應用程序可能在計算數(shù)組的大小時,存在算法錯誤,導致數(shù)組的size很大,從而導致巨大的數(shù)組被分配。

6、 OOM for small swap=>例如:Exception in thread "main": java.lang.OutOfMemoryError: request bytes for . Out of swap space?

分  析

拋出這類錯誤,是由于從native堆中分配內存失敗,并且堆內存可能接近耗盡。這類錯誤可能跟應用程序沒有關系,例如下面兩種原因也會導致錯誤的發(fā)生:

(1)操作系統(tǒng)配置了較小的交換區(qū)

(2)系統(tǒng)的另外一個進程正在消耗所有的內存

解決方法

(1)、檢查os的swap是不是沒有設置或者設置的過小

(2)、檢查是否有其他進程在消耗大量的內存,從而導致當前的JVM內存不夠分配。

注意:雖然有時部分顯示導致OOM的原因,但大多數(shù)情況下,顯示的是提示分配失敗的源模塊的名稱,所以有必要查看日志文件,如crash時的hs文件。


分享題目:Java中關于OOM的場景及解決方法
本文URL:http://www.5511xx.com/article/dpojghd.html