成人免费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技術棧公眾號

主站蜘蛛池模板: xx视频在线观看 | 国产欧美一区二区三区在线播放 | 中文字幕1区2区 | 天天操天天怕 | 黄色av一区 | 欧美老少妇一级特黄一片 | 日本超碰 | 国产精品色av | 麻豆精品一区二区三区在线观看 | 一区二区三区精品视频 | 久久久久久av | 午夜影院在线观看版 | 成人av一区二区三区 | 日日想夜夜操 | 久久高清 | 亚洲国产精品久久人人爱 | 国产精品欧美一区二区 | 国产91成人| 亚洲色图插插插 | 国产精品一区二区视频 | 日韩性在线 | 国产农村妇女毛片精品久久麻豆 | 91在线一区二区 | 欧美视频成人 | 亚洲自拍偷拍av | 免费人成激情视频在线观看冫 | 在线观看免费高清av | 一级毛片免费视频 | 九九色综合 | 一区二区三区福利视频 | 精品视频一区二区三区 | 国产免费又色又爽又黄在线观看 | 97超碰成人| 天天操天天射天天舔 | 在线看免费 | 久久天堂 | 久久久青草婷婷精品综合日韩 | 亚洲国产日韩一区 | 亚洲精品中文字幕 | 中文字幕精品一区 | 亚洲国产中文在线 |