成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java中關于OOM的場景及解決方法

開發 后端
本文詳細的介紹了Java中關于OOM的場景以及解決方案。

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

分  析

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

解決方法

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

分  析

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

解決方法

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

另外,注意一點,Perm一般是在JVM啟動時加載類進來,如果是JVM運行較長一段時間而不是剛啟動后溢出的話,很有可能是由于運行時有類被動態加載進來,此時建議用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 保留的操作系統內存

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)試圖分配一個大于堆大小的數組。例如,如果應用程序new一個數組對象,大小為512M,但是***堆大小為256M,因此OutOfMemoryError會拋出,因為數組的大小超過虛擬機的限制。

解決方法

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

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

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

分  析

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

(1)操作系統配置了較小的交換區

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

解決方法

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

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

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

原文鏈接:http://www.cnblogs.com/cx361/archive/2011/12/02/2271889.html

【編輯推薦】

  1. Java NIO之選擇就緒模式
  2. Java代碼規范那些事
  3. Java效率真的很低嗎?Android為何要采用?
  4. 漫談Java開源5年:自由但帶著枷鎖
  5. JavaFX2.0網格布局窗格GridPane

 

責任編輯:林師授 來源: 十分愛的博客
相關推薦

2021-01-12 11:40:12

SonarQube平臺數據項目授權

2016-09-23 20:46:53

2022-10-13 07:35:52

數據配置MySQL

2011-08-29 16:23:29

Lua腳本

2009-07-01 18:14:36

JSP亂碼

2009-07-10 14:32:06

JVM崩潰

2011-05-06 17:25:58

硒鼓

2013-01-30 16:54:21

2010-06-09 09:39:42

Opensuse雙系統

2009-12-16 10:50:26

2010-06-21 09:54:50

Linux Aplay

2011-04-29 13:22:48

ThinkPad筆記本故障

2010-08-12 09:30:08

Flex內存泄露

2022-04-02 20:27:30

ETS操作系統鴻蒙

2009-07-24 10:42:28

CLR線程池

2010-12-27 10:48:10

VirtualboxFreedos

2022-04-06 10:09:17

云服務云計算

2011-06-16 10:27:55

.NET內存泄漏

2019-10-11 19:45:28

SparkSQLHiveHadoop

2013-06-25 09:16:10

Unity3D
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷激情综合 | 国产1区 | 日本天天操 | 日韩欧美国产精品一区 | 免费看a| 黄色在线观看网站 | 日韩成人在线播放 | 亚洲91| 成人三级视频在线观看 | 一区二区三区视频在线观看 | 久久国产区 | 日韩精品1区2区 | 在线观看国产h | 久久亚洲天堂 | 91久久伊人 | 欧美日韩在线观看视频 | 欧美寡妇偷汉性猛交 | 伊人精品在线视频 | 日韩精品一区二区三区中文在线 | 国内精品久久影院 | 欧美一区二区免费 | 午夜久久久久久久久久一区二区 | 一区二区在线 | 欧美h视频 | 黑人性hd | 韩国主播午夜大尺度福利 | 男人的天堂视频网站 | 波多野结衣先锋影音 | 亚洲国产精品一区二区第一页 | 国产999在线观看 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 久久久精彩视频 | 天天插天天搞 | 久久99这里只有精品 | av黄色在线观看 | 国产免费拔擦拔擦8x高清 | 日本特黄特色aaa大片免费 | 亚洲欧美国产一区二区三区 | 久久国产一区二区 | 99亚洲精品 | 亚洲精品视频免费观看 |