激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - linux解決Tomcat內存溢出的問題

linux解決Tomcat內存溢出的問題

2021-12-07 17:07Linux教程網 Linux

下面小編就為大家帶來一篇linux解決Tomcat內存溢出的問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Tomcat本身不能直接在計算機上運行,需要依賴于操作系統和一個JAVA虛擬機。JAVA程序啟動時JVM會分配一個初始內存和最大內存給程序。當程序需要的內存超出內存的最大值時虛擬機就會提示內存溢出,并且導致應用服務崩潰。

一、常見的Java內存溢出有以下三種:

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

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

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

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

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

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

出錯場景:如果APP載入很多CLASS,就可能會出現PermGen space溢出。(因為sun的GC不會在程序運行時對PermGen space進行清理)常見于web服務器對JSP進行pre compile的時候

解決方法:修改MaxPermSize大小

3. java.lang.StackOverflowError 即棧溢出

解釋說明:JVM采用的是棧式的虛擬機,函數的調用過程都體現在堆棧和退棧上。

出錯場景:通常棧的大小是1-2MB的,如果調用構造函數的 “層”太多,則會出現棧溢出

解決方法:修改程序

二、Tomcat的JVM內存溢出解決方法

在生產環境中,tomcat內存設置不好很容易出現JVM內存溢,解決方法就是修改Tomcat中的catalina.sh文件。
在catalina.sh文件中,找到cygwin=false,在這一行的前面加入參數,具體如下

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

其他說明:

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

三、jvm參數說明:

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 天使萌一区二区三区免费观看 | 欧美黄在线| 免费a级观看 | 一级黄色毛片免费 | 成人视屏在线 | 精品一区二区三区在线视频 | 中文字幕精品亚洲 | 性生活视频一级 | 日本在线观看高清完整版 | 美女黄色毛片免费看 | 视频一区国产精品 | 日本黄色大片免费 | 国产精品视频一区二区三区综合 | 99pron| 九九精品视频观看 | 一色桃子av大全在线播放 | 国产二区三区四区 | 日韩视频高清 | 日日做夜夜操 | 91成人亚洲 | 国产亚洲精彩视频 | 久久最新网址 | 国产精品性夜天天视频 | 日韩一级电影在线观看 | 欧美一区二区三区免费观看 | 高清不卡一区二区 | 一区二区三区日韩精品 | 久久久久久久免费精品 | 毛片大全免费 | 91av大片 | 怦然心动50免费完整版 | 久久视频在线免费观看 | 看免费黄色大片 | 亚洲一级簧片 | 国产精品久久久久久久不卡 | 深夜福利视频绿巨人视频在线观看 | 精品一区二区久久久久久久网精 | 久久久久国产成人精品亚洲午夜 | 三人弄娇妻高潮3p视频 | 中文字幕在线免费观看电影 | 天天草天天干天天 |