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

關于Java中內存溢出的解決辦法

開發 后端
J2EE應用系統是運行在J2EE應用服務器上的,而j2ee應用服務器又是運行在JVM上的,生成環境中JVM參數的優化和設置對于J2EE應用系統性能有著決定性的作用。

J2EE應用系統是運行在J2EE應用服務器上的,而j2ee應用服務器又是運行在JVM上的,生成環境中JVM參數的優化和設置對于J2EE應用系統性能有著決定性的作用。要優化系統,則需要對JVM參數進行合理的設置,所以我們需要了解究竟在什么地方進行設置、有哪些參數以及各參數的意義分別是什么,并且我們還得了解JVM的內存管理機制究竟是個什么玩意兒?其實我們在網上搜索引擎上,一搜就有可以獲取到一大把相關信息,關鍵是我們如何深入的理解它們。那么下面我們就簡單的介紹一下究竟什么是JVM的內存管理機制吧~!  

JVM的早期版本并沒有進行分區管理;這樣的后果是JVM進行垃圾回收時,不得不掃描JVM所管理的整片內存,所以搜集垃圾是很耗費資源的事情,也是早起JAVA程序的性能低下的主要原因。隨著JVM的發展,JVM引進了分區管理的機制。

JVM所管理的所有內存資源分為2個大的部分。***存儲區(Permanent Space) 和堆空間(The Heap Space)。其中對空間又分為新生區()和養老區,新生區又分為伊甸園,幸存者0區、幸存1區。如下圖:

 

關于個分區的用途,大家可以參考其他相關文檔。本教程所要處理的問題是如何解決內存溢出的問題。接下來以tomcat服務器為例:

我們首先得找到內存管理所要設置的參數在哪個文件:<CATALINA_HOME>/bin/catalina.bat。

需要添加一行代碼:

JAVA_OPTS="-Xms512m-Xmx512m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=256m"

下面分別對各參數進行介紹和解釋:

JVM 相關參數:

參數名參數說明

-server 啟用能夠執行優化的編譯器, 顯著提高服務器的性能,但使用能夠執行優化的編譯器時,服務器的預備時間將會較長。生產環境的服務器強烈推薦設置此參數。

-Xss 單個線程堆棧大小值;JDK5.0 以后每個線程堆棧大小為1M,以前每個線程堆棧大小為256K。在相同物理內存下,減小這個值能生成更多的線程。但是操作系統對一個進程內的線程數還是有限制的,不能無限生成,經驗值在3000~5000左右。

-XX:+UseParNewGC 可用來設置年輕代為并發收集【多CPU】,如果你的服務器有多個CPU,你可以開啟此參數;開啟此參數,多個CPU 可并發進行垃圾回收,可提高垃圾回收的速度。此參數和+UseParallelGC,-XX:ParallelGCThreads搭配使用。

+UseParallelGC 選擇垃圾收集器為并行收集器。此配置僅對年輕代有效。即上述配置下,年輕代使用并發收集,而年老代仍舊使用串行收集。可提高系統的吞吐量。

-XX:ParallelGCThreads 年輕代并行垃圾收集的前提下(對并發也有效果)的線程數,增加并行度,即:同時多少個線程一起進行垃圾回收。此值***配置與處理器數目相等。***存儲區相關參數:參數名參數說明

-Xnoclassgc 每次***存儲區滿了后一般GC 算法在做擴展分配內存前都會觸發一次FULL GC,除非設置了-Xnoclassgc.

-XX:PermSize 應用服務器啟動時,***存儲區的初始內存大

-XX:MaxPermSize 應用運行中,***存儲區的極限值。為了不消耗擴大JVM ***存儲區分配的開銷,將此參數和-XX:PermSize這個兩個值設為相等。堆空間相關參數參數名參數說明

-Xms 啟動應用時,JVM 堆空間的初始大小值。

-Xmx 應用運行中,JVM 堆空間的極限值。為了不消耗擴大JVM 堆控件分配的開銷,將此參數和-Xms 這個兩個值設為相等,考慮到需要開線程,講此值設置為總內存的80%.

-Xmn 此參數硬性規定堆空間的新生代空間大小,推薦設為堆空間大小的1/4。

上面所列的JVM 參數關系到系統的性能,而其中-XX:PermSize,

-XX:MaxPermSize,-Xms,-Xmx 和-Xmn 這5 個參數更是直接關系到系統的性能,系統是否會出現內存溢出。

-XX:PermSize 和-XX:MaxPermSize 分別設置應用服務器啟動時,***存儲區的初始大小和極限大小;在生成環境中強烈推薦將這個兩個值設置為相同的值,以避免分配***存儲區的開銷,具體的值可取系統“疲勞測試”獲取到的***存儲區的極限值;如果不進行設置-XX:MaxPermSize 默認值為64M,一般來說系統的類定義文件大小都會超過這個默認值。

-Xms 和-Xmx 分別是服務器啟動時,堆空間的初始大小和極限值。-Xms的默認值是物理內存的1/64 但小于1G,-Xmx 的默認值是物理內存的1/4 但小于1G.在生產環境中這些默認值是肯定不能滿足我們的需要的。也就是你的服務器有8g 的內存,不對JVM 參數進行設置優化,應用服務器啟動時還是按默認值來分配和約束JVM 對內存資源的使用,不會充分的利用所有的內存資源。

結論:“***存儲區溢出(java.lang.OutOfMemoryError:Java Permanent Space)”乃是***存儲區設置太小,不能滿足系統需要的大小,此時只需要調整-XX:PermSize 和-XX:MaxPermSize 這兩個參數即可。“JVM 堆空間溢出(java.lang.OutOfMemoryError: Java heap space)”錯誤是JVM 堆空間不足,此時只需要調整-Xms 和-Xmx 這兩個參數即可。

到此我們知道了,當系統出現內存溢出時,是哪些參數設置不合理需要調整。但我們怎么知道服務器啟動時,到底JVM 內存相關參數的值是多少呢?

這個問題其實Sun公司早已經意料到了,所以給我們開發了內存使用監控工具jvmstat.

大家可以到ORACLE官網進行下載。用它可以很方便的看到我們的服務器內存使用情況。

將下載的jvmstat包解壓到如“C:\ProgramFiles\Java\jvmstat”(這是我本地java路徑,大家可以根據自己所安裝的java環境的路徑進行解壓)。啟動完之后我們就可以使用visualgc命令了,cmd進入命令符窗口,輸入tasklist(windows下查看進程任務PID)查找到你要檢測進程PID.然后直接輸入visuglgc PID 就會彈出三個可見視圖。

如下圖:

 

原文鏈接:http://blog.csdn.net/czp0608/article/details/7352024

【編輯推薦】

  1. Java中的面向對象特性
  2. 探究Java初始化的過程
  3. Java集合框架的知識總結
  4. Java與F#的并行程序處理對比
  5. Java并發編程之同步互斥問題
責任編輯:林師授 來源: czp0608的博客
相關推薦

2019-08-29 14:29:42

JVM內存 Java

2009-08-18 16:45:50

Tomcat內存溢出

2012-05-29 16:30:33

Tomcat內存溢出

2009-09-17 14:11:53

2010-04-13 14:54:06

Oracle SQL

2009-09-03 09:08:08

Linuxroot密碼遺忘

2010-01-12 15:36:17

三層路由交換機

2009-06-16 11:01:14

Java內存溢出

2009-06-03 16:41:21

Eclipse亂碼Eclipse

2011-03-04 13:07:47

Filezilla

2021-03-06 10:25:19

內存Java代碼

2011-01-19 17:54:48

2009-05-31 09:07:35

Oracle鎖定

2024-09-09 09:41:03

內存溢出golang開發者

2011-06-17 11:10:51

Qt 中文 輸出

2009-12-07 18:38:16

WCF異常

2023-08-28 10:54:09

容器Docker

2021-02-03 15:12:08

java內存溢出

2010-01-15 09:38:08

磁盤被寫保護解決辦法

2017-05-04 20:15:51

iOSNSTimer循環引用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品成人一区 | 视频精品一区二区三区 | 天天爱综合 | 国产视频一区二区 | 午夜一区二区三区在线观看 | 成人免费黄色片 | 亚洲aⅴ| 免费观看羞羞视频网站 | 国产高清在线观看 | 久久午夜精品福利一区二区 | 久久亚洲一区 | 国产美女特级嫩嫩嫩bbb片 | 日韩欧美一区二区三区 | 免费在线成人 | 国产中文区二幕区2012 | 91成人免费 | www.日本在线观看 | 日韩av免费在线观看 | 国产精品一区二区不卡 | 日本人麻豆 | 黄色在线观看国产 | 99精品视频免费在线观看 | 人人亚洲| 国产视频一区在线观看 | 男女羞羞的网站 | 午夜在线视频 | 国产伦精品一区二区三区高清 | 久久久成人一区二区免费影院 | 亚洲国产精久久久久久久 | 国产精品色婷婷久久58 | 久久精品国产亚洲 | 波多野吉衣在线播放 | 男女免费视频网站 | 久操国产 | 黄色一级大片在线免费看产 | 在线观看日韩 | 日本一区二区不卡视频 | 91高清在线观看 | 色久电影 | av网站免费观看 | 亚洲在线免费 |