欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

linux解決Tomcat內(nèi)存溢出的問題

 更新時間:2016年12月10日 10:42:46   投稿:jingxian  
下面小編就為大家?guī)硪黄猯inux解決Tomcat內(nèi)存溢出的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Tomcat本身不能直接在計算機(jī)上運(yùn)行,需要依賴于操作系統(tǒng)和一個JAVA虛擬機(jī)。JAVA程序啟動時JVM會分配一個初始內(nèi)存和最大內(nèi)存給程序。當(dāng)程序需要的內(nèi)存超出內(nèi)存的最大值時虛擬機(jī)就會提示內(nèi)存溢出,并且導(dǎo)致應(yīng)用服務(wù)崩潰。

一、常見的Java內(nèi)存溢出有以下三種:

1. java.lang.OutOfMemoryError: Java heap space 即JVM Heap溢出

解釋說明:JVM在啟動的時候會自動設(shè)置JVM Heap的值,JVM堆的設(shè)置是指java程序運(yùn)行過程中JVM可以調(diào)配使用的內(nèi)存空間的設(shè)置。其初始空間默認(rèn)是物理內(nèi)存的1/64,最大空間不可超過物理內(nèi)存。JVM提供-Xmn -Xms -Xmx等選項(xiàng)來進(jìn)行設(shè)置。

出錯場景:在JVM中,如果98%的時間是用于GC,且可用的Heap size不足2%時,將會出現(xiàn)JVM Heap溢出

解決方法:修改JVM Heap的大小。

2. java.lang.OutOfMemoryError: PermGen space 即PermGen space溢出

解釋說明:PermGen space是指內(nèi)存的永久保存區(qū)域。這個區(qū)域主要存放Class和Meta信息,Class在被Load時就會被放入PermGen space。

出錯場景:如果APP載入很多CLASS,就可能會出現(xiàn)PermGen space溢出。(因?yàn)閟un的GC不會在程序運(yùn)行時對PermGen space進(jìn)行清理)常見于web服務(wù)器對JSP進(jìn)行pre compile的時候

解決方法:修改MaxPermSize大小

3. java.lang.StackOverflowError 即棧溢出

解釋說明:JVM采用的是棧式的虛擬機(jī),函數(shù)的調(diào)用過程都體現(xiàn)在堆棧和退棧上。

出錯場景:通常棧的大小是1-2MB的,如果調(diào)用構(gòu)造函數(shù)的 “層”太多,則會出現(xiàn)棧溢出

解決方法:修改程序

二、Tomcat的JVM內(nèi)存溢出解決方法

在生產(chǎn)環(huán)境中,tomcat內(nèi)存設(shè)置不好很容易出現(xiàn)JVM內(nèi)存溢,解決方法就是修改Tomcat中的catalina.sh文件。
在catalina.sh文件中,找到cygwin=false,在這一行的前面加入?yún)?shù),具體如下

# vi TOMCAT_HOME/bin/catalina.sh
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m"

其他說明:

1.“m”說明單位是MB,否則默認(rèn)是KB
2.一般使用物理內(nèi)存的80%作為堆大小
3.一般把-Xms和-Xmx設(shè)為一樣大
4.一般把-Xmn設(shè)置為-Xmx值的1/4
5.一般將堆的總大小的50%到60%分配給新生成的池

三、jvm參數(shù)說明:

-server 一定要作為第一個參數(shù),啟用JDK的server版本,在多個CPU時性能佳
-Xms java Heap初始大小。 默認(rèn)是物理內(nèi)存的1/64。
-Xmx java heap最大值。建議均設(shè)為物理內(nèi)存的80%。不可超過物理內(nèi)存。
-Xmn java heap最小值,一般設(shè)置為Xmx的3、4分之一。
-XX:PermSize 設(shè)定內(nèi)存的永久保存區(qū)初始大小,缺省值為64M。
-XX:MaxPermSize 設(shè)定內(nèi)存的永久保存區(qū)最大大小,缺省值為64M。
-XX:SurvivorRatio=2 生還者池的大小,默認(rèn)是2。如
-XX:NewSize 新生成的池的初始大小。 缺省值為2M。
-XX:MaxNewSize 新生成的池的最大大小。 缺省值為32M。
+XX:AggressiveHeap 讓jvm忽略Xmx參數(shù),瘋狂地吃完一個G物理內(nèi)存,再吃盡一個G的swap。
-Xss 每個線程的Stack大小
-verbose:gc 現(xiàn)實(shí)垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-XX:+UseParNewGC 縮短minor收集的時間
-XX:+UseConcMarkSweepGC 縮短major收集的時間
-XX:userParNewGC 可用來設(shè)置并行收集(多CPU)
-XX:ParallelGCThreads 可用來增加并行度(多CPU)
-XX:UseParallelGC 設(shè)置后可以使用并行清除收集器(多CPU)

以上這篇linux解決Tomcat內(nèi)存溢出的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 怎么禁用 Ubuntu 服務(wù)器中終端歡迎消息中的廣告

    怎么禁用 Ubuntu 服務(wù)器中終端歡迎消息中的廣告

    這篇文章主要介紹了怎么禁用 Ubuntu 服務(wù)器中終端歡迎消息中的廣告,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • JVM上高性能數(shù)據(jù)格式庫包Apache Arrow入門和架構(gòu)詳解(Gkatziouras)

    JVM上高性能數(shù)據(jù)格式庫包Apache Arrow入門和架構(gòu)詳解(Gkatziouras)

    Apache Arrow是是各種大數(shù)據(jù)工具(包括BigQuery)使用的一種流行格式,它是平面和分層數(shù)據(jù)的存儲格式,今天給大家介紹JVM上高性能數(shù)據(jù)格式庫包Apache Arrow入門和架構(gòu)介紹,感興趣的朋友一起看看吧
    2021-05-05
  • 在linux系統(tǒng)下安裝兩個nginx的簡單方法

    在linux系統(tǒng)下安裝兩個nginx的簡單方法

    下面小編就為大家?guī)硪黄趌inux系統(tǒng)下安裝兩個nginx的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 查看Linux內(nèi)存條數(shù)與清理內(nèi)存的命令方法

    查看Linux內(nèi)存條數(shù)與清理內(nèi)存的命令方法

    下面小編就為大家?guī)硪黄榭碙inux內(nèi)存條數(shù)與清理內(nèi)存的命令方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • PHP中的.htaccess偽靜態(tài)文件

    PHP中的.htaccess偽靜態(tài)文件

    htaccess是apache的偽靜態(tài)文件了不過普通人不熟悉linux不熟悉apache,可能都用慣了iis,可是又不懂偽靜態(tài)規(guī)則,現(xiàn)在項(xiàng)目就只提供了這么一個.htaccess文件,真叫人苦惱。方案來了徹底解決你的苦惱讓偽靜態(tài)妥妥的windows7,windows8,windows8.1,windows2008-2012都行。
    2016-05-05
  • LINUX重啟MYSQL的命令詳解

    LINUX重啟MYSQL的命令詳解

    下面小編就為大家?guī)硪黄狶INUX重啟MYSQL的命令詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • linux如何mount掛載磁盤并設(shè)置開機(jī)自動mount的實(shí)現(xiàn)

    linux如何mount掛載磁盤并設(shè)置開機(jī)自動mount的實(shí)現(xiàn)

    這篇文章主要介紹了linux如何mount掛載磁盤并設(shè)置開機(jī)自動mount的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • linux安裝jdk,tomcat 配置vsftp遠(yuǎn)程連接的步驟

    linux安裝jdk,tomcat 配置vsftp遠(yuǎn)程連接的步驟

    這篇文章主要介紹了linux安裝jdk,tomcat 配置vsftp遠(yuǎn)程連接,需要的朋友可以參考下
    2015-04-04
  • Git pull命令與fetch命令的區(qū)別

    Git pull命令與fetch命令的區(qū)別

    這篇文章主要介紹了Git pull命令與fetch命令的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • linux下制作ISO文件

    linux下制作ISO文件

    本文給大家分享的是在linux系統(tǒng)中制作ISO文件的2種方法,非常簡單實(shí)用,有需要的小伙伴可以參考下
    2018-04-04

最新評論