阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下 Tomcat内存溢出

402次阅读
没有评论

共计 2358 个字符,预计需要花费 6 分钟才能阅读完成。

Tomcat 本身不能直接在计算机上运行,需要依赖于操作系统和一个 Java 虚拟机。JAVA 程序启动时 JVM 会分配一个初始内存和最大内存给 APP。当 APP 需要的内存超出内存的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。

一、常见的 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)

RedHat Linux 5.5 安装 JDK+Tomcat 并部署 Java 项目  http://www.linuxidc.com/Linux/2015-02/113528.htm

Tomcat 权威指南(第二版)(中英高清 PDF 版 + 带书签)  http://www.linuxidc.com/Linux/2015-02/113062.htm

Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm

Linux 下使用 Xshell 查看 Tomcat 实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm

CentOS 64-bit 下安装 JDK 和 Tomcat 并设置 Tomcat 开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm

CentOS 6.5 下安装 Tomcat  http://www.linuxidc.com/Linux/2015-01/111415.htm

Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2358字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7956943
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...