TOMCAT内存溢出

搭建排查tomcat内存溢出问题的调试环境 上个月赶工上线的门户网站,由于种种原因导致部署到线上服务器后每隔一段时间后就会导致tomcat内存溢出,今天我就要来直面这个棘手的问题。more废话不多说,就由我这个小白依靠GG带领大家来启程吧!凭借我多年的编程经验,我认为首先要找到趁手的工具,那么,问题就来了,挖掘机技术到底哪家强?……好吧,GG一下,可以很容易查到很多用来监控jvm实时状态的工具,我们以jconsole为第一款尝试的工具吧。 阅读详情

转载: http://www.blogjava.net/sundc/archive/2007/10/15/153086.html

就在今天,我把数据库的数据读出来,放在LIST里,晕.具然出现TOMCAT内存益处,在网上查查看,看了一个方法,还可以,现在告诉大家,

Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,轻微时,会使系统性能急剧下降,严重时,将导致系统无法运行,影响系统的稳定性。当内存不够用时,常见的问题就是报tomcat内存益处错误,从儿导致客户端包500错误的,如下:解决方法主要是加大TOMCAT可利用内存,并在程序当中加大内存使用。因此根据应用的需求,有必要调整JVM使用内存的大小。现在将手工修改tomcat内存的方法及注意事项列出,希望能对新人有所帮助。
tomcat提供了两种安装模式,即免安装(*.zip)和安装(*.exe)方式。针对不同的安装方式下修改tomcat内存大小的方法几注意问题(windows环境):
 方式1:当选择安装方式时,可以在安装tomcat的过程进行设置tomcat初始化内存的大小。但是假如说在安装时没有选择,或者应用改变了,需要增加tomcat内存时怎么半呢?此时,我们就要手工修改tomcat的一些文件了:
 看了很多网上的资料,都是说修改<CATALINA_HOME>/bin/catalina.bat文件的内容,即在里面增加一行代码:
set JAVA_OPTS=-Xms512m -Xmx512m //表示初始化最小可用内存和最大可用内存都是512MB(修改相应值即可)
 
 如在catalina.bat的
     rem ----- Execute The Requested Command
     echo Using CATALINA_BASE:   %CATALINA_BASE%
     echo Using CATALINA_HOME:   %CATALINA_HOME%
     echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
     echo Using JAVA_HOME:       %JAVA_HOME%
这一栏改为
    rem ----- Execute The Requested Command
    set JAVA_OPTS=-Xms512m -Xmx512m
    echo Using CATALINA_BASE:   %CATALINA_BASE%
    echo Using CATALINA_HOME:   %CATALINA_HOME%
    echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
    echo Using JAVA_HOME:       %JAVA_HOME%
就可以将JAVA虚拟机分配内存  508.0625MB的!
但是很多人修改后,发现修改并没有起作用,即通过windows的服务启动tomcat时,实际的内存还是默认的,修改的设置并没有起作用;而通过<CATALINA_HOME>/bin/startup.bat 启动却是生效的。这是为什么呢?因为在安装过程中,JVM的初始化参数已经写在注册表中了,由于没有修改注册表中相关参数,所以以windows服务方式启动时,修改的并没有生效。而通过<CATALINA_HOME>/bin/startup.bat 启动直接是通过<CATALINA_HOME>/bin/catalina.bat文件中的配置的。你需要重新加载到系统服务中才生效,或者你手工在注册表中查找修改启动值,加载到服务中的时候参数已经配置好了,自己修改artup.bat不会改变注册表中的参数设置。
 
解决方法:修改注册表中的参数,加入JVM初始化内存的参数:
HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Tomcat Service Manager/Tomcat5/Parameters/JavaOptions
值为
-Dcatalina.home="C:/ApacheGroup/Tomcat 5.0"
-Djava.endorsed.dirs="C:/ApacheGroup/Tomcat 5.0/common/endorsed"
-Xrs
如加入 -Xms512m -Xmx800m
 
方式2:针对免安装的用户,也可以通过将tomcat注册为windows的一个服务的方式来实现:‘
我们可以对service.bat文件做一些其他修改,使tomcat更加能满足我们各种不同需求时的要求
1. 如果让tomcat编译jsp文件,就在PR_CLASSPATH中加入J2SDK的tools.jar
修改前:
set PR_CLASSPATH=%CATALINA_HOME%/bin/bootstrap.jar
修改后:
set PR_CLASSPATH=%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/bin/bootstrap.jar
2.要使用一个特定的JVM,就要修改jvm的参数;要使注册的windows服务的启动方式为自动,增加--Startup Automatic,这个是比较常用的;要用定制的server.xml配置文件并且传递多个参数给StartClass,要修改StartParams的值,各个值之间用分号分隔:
修改前:
"%EXECUTABLE%" //IS//%SERVICE_NAME% --Jvm auto
--StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap
--StartParams start --StopParams stop
修改后:
"%EXECUTABLE%" //IS//%SERVICE_NAME% --Jvm "%JAVA_HOME%/jre/bin/server/jvm.dll"
--StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap
--StartParams "-config;%CUSTOM_SERVERXML_FILE%;-nonaming;start" --StopParams stop
--Startup Automatic
3. 指定最大和最小的内存限制,要增加jvm的初始参数
修改前:
"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions
"-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%/common/endorsed"
--StartMode jvm --StopMode jvm
修改后:
"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions
"-Xms128M;-Xmx256M;-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%/common/endorsed"
--StartMode jvm --StopMode jvm
4.有时注册windows服务成功后,但是启动服务时显示“发生服务特定错误: 0.”
就是因为jvm没有指定,修改Jvm auto为Jvm "%JAVA_HOME%/jre/bin/server/jvm.dll"后重新注册windows服务就可以启动了。
Tomcat内存配置优化 在高负载环境下,适当地配置Tomcat的内存参数可以提高性能和稳定性。Tomcat的内存配置主要涉及两个参数:堆内存(Heap Memory)和非堆内存(Non-Heap Memory)。堆内存用于存储对象实例,而非堆内存用于存储JVM的类定义、方法区和线程栈等。通过以上步骤,您可以修改Tomcat的内存配置以满足您的需求。请注意,内存配置应根据服务器的硬件和应用程序的负载进行调整。过小的内存配置可能导致性能问题,而过大的内存配置可能浪费资源。重新启动Tomcat服务器,以使新的内存配置生效。 阅读详情

相关推荐

liquibase介绍

1、Liquibase还是Flyway Flyway和Liquibase都支持专业数据库重构和版本控制所需的所有功能,因此您将始终知道要处理的数据库模式的版本以及它是否与软件版本匹配。两种工具都集成在Maven或Gradle构建脚本中以及Spring Boot生态系统中,因此您可以完全自动化数据库重构。 Flyway使用SQL定义数据库更改,因此您可以定制SQL脚本,使其与基础数据库技术(例如Oracle或PostgreSQL)良好地配合使用。另一方面,使用Liquibase,您可以通过使用XML,YA

赶路人儿 7534

查看Tomcat默认使用堆内存大小

查看Tomcat默认使用堆内存大小查看Tomcat默认使用堆内存大小1.Tomcat默认堆内存大小2.查看Tomcat堆内存大小 查看Tomcat默认使用堆内存大小 1.Tomcat默认堆内存大小 如果没有配置JAVA_OPTS变量,JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。 2.查看Tomcat堆内存大小 通过jps找到tomcat的进程id [

不如打代码 7006

[GXYCTF2019]BabyUpload1 -- .htaccess文件解析与蚁剑实战指南

本文深入解析了[GXYCTF2019]BabyUpload1文件上传漏洞的实战利用。通过绕过后缀名与内容检测,上传包含PHP代码的.jpg文件,并利用.htaccess文件强制服务器将其解析为PHP脚本。文章详细介绍了.htaccess的原理、构造方法、Content-Type绕过技巧,并演示了如何使用中国蚁剑连接Webshell获取Flag,为Web安全学习提供了完整实战指南。

weixin_29016315的博客 512

如何设置Tomcat的JVM虚拟机内存大

Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的*作系统和一个java虚拟机。您可以选择自己的需要选择不同的*作系统和对应的 JDK的版本(只要是符合Sun发布的Java规范的),但我们推荐您使用Sun公司发布的JDK。确保您所使用的版本是最新的,因为Sun公司和其它一些公司一直在为提高性能而对java虚拟机做一些升级改进。一些报告显示JDK1.4在性能上比JDK1.3提高了将近1

fengyie007的专栏 1万+

Windows Server远程桌面断开后,PyWinAuto/按键精灵脚本失效?试试这个‘会话保持’的终极配置

本文深入解析Windows Server远程桌面断开后导致PyWinAuto/按键精灵脚本失效的问题,提供会话保持的终极配置方案。通过转换到控制台会话(console模式)和调整组策略,确保自动化程序在断开连接后持续稳定运行,适用于Windows Server各版本。

weixin_28738165的博客 227

7-1 链式基数排序 (20 分)

7-1 链式基数排序 (20 分) 实现链式基数排序,待排序关键字n满足1≤n≤1000,最大关键字数位≤5。 输入样例: 第一行输入待排序个数n(1≤n≤1000),再输入n个数(n的数位≤5)。 10 278 109 63 930 589 184 505 269 8 83 输出样例: 输出每趟分配-收集后链表中的关键字,趟数为序列中最大值的数位(如样例中930的数位为3),每行结尾有空格。 930 63 83 184 505 278 8 109 589 269 505 8 109 930 63 26

OwemShu的博客 4240

tomcat8内存设置

1.编辑bin/catalina.bat文件 2.找到echo Using CATALINA_BASE "%CATALINA_BASE%"的前一行加入如下代码: set JAVA_OPTS=%JAVA_OPTS% -server -Xms8192m -Xmx8192m -Xmn1890m 3.参数解释: -server:一定要作为第一个参数,在多个CPU时性能佳。 -Xms:java Heap初始大小。 默认是物理内存的1/64。 -Xmx:java heap最大值。建议均设为物理内存的一半。不可超过物.

weixin_43135696的博客 1850

【生产实践】SSH服务弱加密算法修复指南(附完整操作流程)

SSH服务弱加密算法漏洞修复方案 检测发现SSH服务存在支持弱加密算法漏洞,主要风险包括: 使用arcfour、aes128-cbc等易被破解的算法 面临密钥恢复、重放攻击等安全威胁 提供两种修复方案: 推荐方案:升级OpenSSH至最新版本 替代方案:修改SSH配置禁用弱算法(需注意可能影响旧客户端连接) 修复步骤: 编辑/etc/ssh/sshd_config 注释或删除弱算法配置 添加强加密算法(如aes128-ctr等) 重启SSH服务 注意事项: 建议先在测试环境验证 可能需配合客户端升级 操作前

SunMy的博客 3107

面试整理

01 . Tomcat 默认的内存大小是多少? Tomcat默认可以使用的内存为128MB,这点内存是不够的,需要调大 第一种方法:   Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:   JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'   需要把这个两个参数

GentDog 600

实战分享:如何用YOLOv5s+BIFPN高效检测隧道裂缝(附数据集获取)

本文详细介绍了如何利用YOLOv5s结合BIFPN(双向特征金字塔网络)构建高效的隧道裂缝智能检测系统。文章从高质量数据集构建、针对性数据增强、模型架构选型与调优,到工程化部署全链路进行了实战分享,旨在为基础设施自动化巡检提供兼顾精度与速度的解决方案。

weixin_29062823的博客 382

减小伺服电机共振的方法(以松下伺服为例)

嘿 ! 我是【小黄】 , 我们又见面啦 !!! 毕竟技术只有大家交流才会进步嘛 ! 这博客是对自己学习的一点点记录和总结 ,如果您对自动控制感兴趣的话 ,可以关注一下我的动态 , 我们一起学习呀 ! 我们都还年轻 ,我们还有无限可能 。 YES ! 减小伺服电机共振的方法(以松下伺服为例)1. 准备工作:1.1.1 如何推定共振点:1.1.2 测定实操:1.1.3 总结:2. 下期预告: 在我们调试完伺服参数以后机器人运动到某个特定位置会产生振动或异响,我们要做的就是消除这个异响保..

在下小黄的博客 1万+

myeclipse启动tomcat内存溢出,或tomcat内存溢出问题解决办法

最近项目开发中老是

一缕陽光的专栏 8499

Dinic算法的复杂度分析及证明

一般图 复杂度主要取决于dfs增广的过程。 将dfs部分的复杂度分成两部分来分析:1)修改增广路上边的流量。至多会增广mmm次,一条增广路的长度至多是nnn,所以这一部分的复杂度是O(nm)O(nm)O(nm)。2)dfs遍历时找增广路失败时经过的边。由于一旦从某条边出发找最短路失败了,我们就不会再走那条边(当前弧优化),所以这一部分的复杂度是O(m)O(m)O(m)的。故而dfs增广的复杂度是O...

这个博客已经搬到了:zhongyuwei.github.io 4393

tomcat内存溢出原因

你对Tomcat 的JVM内存溢出问题的解决方法是否了解,这里和大家分享一下,相信本文介绍一定会让你有所收获。tomcat 的JVM内存溢出问题的解决最近在熟悉一个开发了有几年的项目,需要把数据库从mysql移植到oracle,首先把jdbc的连接指向mysql,打包放到tomcat里面,可以跑起来,没有问题,可是当把jdbc连接指向oracle的时候,tomcat就连续抛java.lang.OutOfMemoryError的错误,上网google了一下,了解了一下tomcat的运行机制,也解决了问题,sh

wctming2010的专栏 791

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Tomcat9内存溢出

Tomcat9内存溢出 OutOfMemoryError: Java heap space OutOfMemoryError: PermGen space OutOfMemoryError: unable to create new native thread. 临时解决方法: 修改Tomcat的内存配置,打开$TOMCAT_HOME/bin/catalina.sh文件(Windows系统是...

Sunlight 2041

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

TOMCAT 内存溢出错误

<br />Tomcat 的JVM 内存溢出问题的解决<br />关键字: tomcat 的jvm 内存溢出问题的解决 <br />最近在熟悉一个开发了有几年的项目,需要把数据库从mysql移植到oracle,首先把jdbc的连接指向mysql,打包放到tomcat里面,可以跑起来,没有问题,可是当把jdbc连接指向oracle的时候,tomcat就连续抛java.lang.OutOfMemoryError的错误,上网google了一下,了解了一下tomcat的运行机制,也解决了问题,share出来,以备查

专注云计算与互联网 608

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

tomcat内存溢出总结

在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存原因是不一样的,当然处理方式也不一样。 这里根据平时遇到的情况和相关资料进行一个总结。常见的一般会有下面三种情况:         1.OutOfMemoryError: Java heap space         2.OutOfMemoryError: PermGen space         3.OutOfMemor...

Fangrn的专栏 212

tomcat outofmemoryerror内存溢出

tomcat内存溢出,堆内存可以分为三个部分:永久保存区域,新生区,老年区。tomcat比较常见的内存溢出包括(OutOfMemoryError:java heap space)和(OutOfMemoryError:PermGen space)两种。 1.OutOfMemoryError:java heap space heap space通常指程序运行过程中,虚拟机可以调配的内存区域,程序中...

gis_zhouda的博客 475

java tomcat 内存溢出怎么解决_Tomcat内存溢出分析及解决方法

Tomcat内存溢出分析及解决方法更新时间:2012年11月21日 15:41:43 作者:堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的,本文将详细介绍Tomcat内存溢出,需要了解更多的朋友可以参考下JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和...

weixin_29997937的博客 1256

tomcat内存溢出

tomcat 在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存原因是不一样的,当然处理方式也不一样。   这里根据平时遇到的情况和相关资料进行一个总结。常见的一般会有下面三种情况:   1.OutOfMemoryError: Java heap space   2.OutOfMemoryError: PermGen space   3.OutOfMemoryError: unable to create new native thread.   对于前两种情况,在应用本身没有内存

qq_39640771的博客 187

tomcat内存溢出问题记录

问题说明: 公司内网环境中部署的jenkins代码发版平台突然不能访问了,查看tomcat的catalina.out日志发现报错如下: 1 2 3 4 5 6 [root@redmine logs]# tail -f /srv/apache-tomcat-7.0.67/logs/catalina.out ...... Exception

Ryan Z 的技术日志 1913

Linux tomcat解决内存溢出

tomcat 日志报错: iZ284dfbxn8Z:/usr/local/apache-tomcat-7.0.67/logs # tail -f catalina.out Exception in thread "http-bio-8080-exec-46" java.lang.OutOfMemoryError: PermGen space Exception in thread "http

lh756437907的博客 2668

linux查看tomcat启动内存溢出,Linux下 Tomcat内存溢出

Tomcat本身不能直接在计算机上运行,需要依赖于操作系统和一个Java虚拟机。JAVA程序启动时JVM会分配一个初始内存和最大内存给APP。当APP需要的内存超出内存的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。一、常见的Java内存溢出有以下三种:1. java.lang.OutOfMemoryError: Java heap space 即JVM Heap溢出解释说明:J...

weixin_28957063的博客 567

关于经常遇到的tomcat内存溢出问题

最近在开发SSH项目的时候经常遇到tomcat内存溢出的问题,所以总结一下解决的方法。 tomcat内存溢出一般有三种情况: 1.OutOfMemoryError: Java heap space 2.OutOfMemoryError: PermGen space 3.OutOfMemoryError: unable to create new native thread. 我最近经常遇

ZQ_Noble的博客 587

TOMCAT内存溢出之解决方法

当用户执行一个大数据的应用时(净字节码量约为5M)时,系统会提示出错: 前台错误为:HTTP Status 500-Dispatch[EAITool] to method listCurTree retrun an exception (以下省略) ……………………………………………………… ……………………………………………………… 问题分析:     由于TOMCAT内存溢出而引发

轩辕剑仙のBLOG 827

linux解决Tomcat内存溢出

Tomcat本身不能直接在计算机上运行,需要依赖于操作系统和一个JAVA 虚拟机 。JAVA程序启动时JVM会分配一个初始内存和最大内存给程序。当程序需要的内存超出内存的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。 一、常见的 Java 内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space 即JVM Heap溢出 解释说明:JVM在启动的时候会自动设置JVM Heap的值,JVM堆的设置是指java程序运行过程中JVM可以调配使用的

lgxzzz的博客 1289
上一篇: SYBASE数据导入技巧
下一篇: tomcat乱码解决方案 tomcat 乱码
冯立彬
冯立彬 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域
博客等级 码龄21年 5458粉丝 593原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值