tomcat的内存如何限制大小

tomcat的内存如何限制大小,第1张

导致宕机的原因主要是tomcat的jvm内存大小设置的问题。
如果要在myeclipse中启动tomcat,修改一下tomcat的java虚拟机的内存大小,可如下设置:
Myeclipse->preferences->myeclipse->servers->tomcat->tomcat××->JDK面板中的
Optional Java VM arguments中添加:-Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m
把虚拟机内存改大点应该就可以了。
望采纳。

(1)修改 tomcat 的内存方式:
在set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%这行下面前面加上JAVA_OPTS='-Xms512m -Xmx1024m'JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"。


其中 JAVA_OPTS='-Xms512m -Xmx1024m' 是设置Tomcat使用的内存的大小,-XX:PermSize=64M -XX:MaxPermSize=256m 指定类空间(用于加载类)的内存大小 。
(2)扩大jvm的方法这个说法太泛,其实是在运行jvm的时候指定的,如果运行的是 tomcat 就是改 catalinabat。如果运行的是eclipse 就是修改 eclipseini。所以jvm的内存大小怎么修改是看你运行的具体程序的,不通程序有不同的改法。

 Tomcat有很多方面,我从内存、并发、缓存四个方面介绍优化方法。
一Tomcat内存优化
Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalinash 中设置 JAVA_OPTS 参数。
JAVA_OPTS参数说明
-server 启用jdk 的 server 版;
-Xms java虚拟机初始化时的最小内存;
-Xmx java虚拟机可使用的最大内存;
-XX:PermSize 内存永久保留区域
-XX:MaxPermSize 内存最大永久保留区域
服务器参数配置
现公司服务器内存一般都可以加到最大2G ,所以可以采取以下配置:
JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'
配置完成后可重启Tomcat ,通过以下命令进行查看配置是否生效:
首先查看Tomcat 进程号:
sudo lsof -i:9027
我们可以看到Tomcat 进程号是 12222 。
查看是否配置生效:
sudo jmap – heap 12222
我们可以看到MaxHeapSize 等参数已经生效。、
二Tomcat并发优化
1Tomcat连接相关参数
在Tomcat 配置文件 serverxml 中的 <Connector /> 配置中
1>参数说明
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为 10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为 75
acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100
enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为30000 毫秒。
其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数。
web server允许的最大连接数还受制于 *** 作系统的内核参数设置,通常 Windows 是 2000 个左右, Linux 是 1000 个左右。
2>Tomcat中的配置示例
<Connector port="9027"
protocol=">修改 tomcat 的内存方式:
修改 catalinabat

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
这行下面前面加上
JAVA_OPTS='-Xms512m -Xmx1024m'
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"
其中 JAVA_OPTS='-Xms512m -Xmx1024m' 是设置Tomcat使用的内存的大小
-XX:PermSize=64M -XX:MaxPermSize=256m 指定类空间(用于加载类)的内存大小
扩大jvm的方法这个说法太泛,其实是在运行jvm的时候指定的,如果你运行的是 tomcat 就是改 catalinabat 如果你运行的是eclipse 就是修改 eclipseini 所以jvm的内存大小怎么修改是看你运行的具体程序的,不通程序有不同的改法

tomcat内存优化
linux修改TOMCAT_HOME/bin/catalinash,在前面加入
JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Dusertimezone=Asia/Shanghai"
windows修改TOMCAT_HOME/bin/catalinabat,在前面加入
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
最大堆内存是1024m,对于现在的硬件还是偏低,实施时,还是按照机器具体硬件配置优化。

MyEclipse启动Tomcat无视catalinabat中设置内存大小的问题。
在tomcat的catalinabat中设置set JAVA_OPTS=-Xms128m-Xmx256m,直接使用startupbat启动tomcat没有问题。但是在myeclipse中配置tomcat后,通过myeclipse启动就出现内存溢出,之前在catalinabat中设置的内存似乎没有作用。
解决方法:窗口->首选项->MyEcliipse->ApplicationServers->Tomcat->Tomcat5x->JDK->OptionalJava VM arguments中填写一下内容。
-Xms128m -Xmx256m
-Dcomsunmanagementjmxremote=true
内存具体大小视具体情况制定。

 jvm内存有好几种呢
windows下修改JVM内存大小:
情况一:解压版本的Tomcat, 要通过startupbat启动tomcat才能加载配置
要添加在tomcat 的bin 下catalinabat 里
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%后面添加,红色的为新添加的
set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djavaawtheadless=true

情况二:安装版的Tomcat下没有catalinabat
windows服务执行的是bin\tomcatexe他读取注册表中的值,而不是catalinabat的设置
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions
原值为
-Dcatalinahome="C:\ApacheGroup\Tomcat 50"
-Djavaendorseddirs="C:\ApacheGroup\Tomcat 50\common\endorsed"
-Xrs
加入 -Xms300m -Xmx350m
重起tomcat服务,设置生效
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:gclog 指定垃圾收集日志文件
-XX:+UseParNewGC 缩短minor收集的时间
-XX:+UseConcMarkSweepGC 缩短major收集的时间
-XX:userParNewGC 可用来设置并行收集(多CPU)
-XX:ParallelGCThreads 可用来增加并行度(多CPU)
-XX:UseParallelGC 设置后可以使用并行清除收集器(多CPU)

使用默认的就可以了。
如果要设置的话,
打开 开始->程序->Apache Tomcat XX->Configure Tomcat
在打开的对话框中,第四个选项卡(Java)中设置,
在最下面有三个文本框,
Initial memory pool: 初始话的Java虚拟机内存大小,
Maxinum memory pool: Java虚拟机可使用的最大内存,
Thread stack size: 程序堆栈大小。
如果是512M内存的话,Initial memory pool最好不要超过256M,
Maxinum memory pool不要超过512M,
Thread stack size不要动,使用默认的就好了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13406330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存