JVM内存有几种类型
Windows下修改JVM内存大小:
情况一:对于未压缩版本的Tomcat,需要通过文件来运行Tomcat来加载配置
必须添加到Tomcat容器下的
remGuessCATALINA_HOMEifnotdefinition
setCURRENT_DIR=%cd%后添加,红色项是新添加的。
setJAVA_OPTS=-Xms256m-Xmx512m-XX:PermSize=128M-XX:MaxNewSize= 256m- XX:MaxPermSize=256m-Djava ss=true
情况二:安装的Tomcat版本中没有
Windows 服务执行 bin\。 读取注册表中的值,而不是设置。
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\ApacheSoftwareFoundation\TomcatServiceManager\Tomcat5\Parameters\JavaOptions
原来的值为="C:\ApacheGroup\Tomcat5.0"
="C:\ApacheGroup\Tomcat5.0\common\endorsed"
>-Xrs
添加-Xms300m-Xmx350m
重启Tomcat服务,设置生效
jvm参数说明:
-应该使用Server作为第一个参数,启用服务器版本的JDK,在使用多CPU时有良好的性能
-初始大小XmsjavaHeap。 默认为物理内存的 1/64。
-Xmxjavaheap 的最大值。 建议设置为物理内存的80%。 它不能超过物理内存。
-Xmnjavaheap的最小值,一般设置为Xmx的3或1/4。
-XX:PermSize 设置永久内存存储空间的初始大小。 默认值为 64M。
-XX:MaxPermSize 设置永久内存存储空间的最大大小。 默认值为 64M。
-XX:SurvivorRatio=2Survivor池大小,默认为2。例如,
-XX:NewSize是新创建的池的初始大小。 默认值为 2M。
-XX:MaxNewSize是新创建的池的最大大小。 默认值为 32M。
+XX:AggressiveHeap让jvm忽略Xmx参数,疯狂消耗1G的物理内存,然后吃掉1G的swap。
-Xss 每个线程的堆栈大小
-verbose:gc 实际的垃圾收集信息
-Xloggc: 指定的垃圾收集日志文件
-XX:+UseParNewGC 缩短二次编译时间
-XX:+UseConcMarkSweepGC 缩短主编译时间
-XX: userParNewGC 可用于设置并行集群(多CPU)
-XX:可使用ParallelGCThreads 增加并行度(多CPU)
-XX:可使用ParallelGC准备后用于使用并行池扫描(CPU 多中心化)
为解决tomcat发出大请求时内存溢出的问题,请调整tomcat分配内存的大小。 有以下两种方式:
1. Xmx1024m-version,当填写的值非法时,执行该命令时会报错
1. 环境:
第166行左右
remExecuteJava withtheapplicable properties"
%_EXECJAVA%%JAVA_OPTS%%CATALINA_OPTS%%DEBUG_OPTS%=" %JAVA_ENDORSED_DIRS%"-classpath"%CLASSPATH%"="%CATALINA_BASE%"="%CATALINA_HOME%"="%CATALINA_TMPDIR%"%MAINCLASS%%CMD_LINE_ARGS%% ACTION%
%DEBUG_OPTS%后添加-Xms256m-Xmx512m
Linux环境下:
打开Tomcat安装中的文件bin文件,进入状态编辑。
在此脚本中添加注释:
JAVA_OPTS='-Xms512m-Xmx1024m'
JAVA_OPTS="$JAVA_OPTS-servo -XX :PermSize= 64M-XX:MaxPermSize=256m"
其中JAVA_OPTS='-Xms512m-Xmx1024m'是Tomcat使用的内存大小。
-XX:PermSize =64M-XX :MaxPermSize=56m 指定类空间的类型(用于加载类)
保存后通过命令行再次运行,然后检查更改是否已成功保存。 tomcat现有的内存状态在最后介绍。
1。 .5 或 5.0.28 之后的版本,在 Javat 选项卡中,下面会出现三个条目:
InitalmemoryPool:
MaximummemoryPool:
Threadstacksize:
Threadstacksize:
p >我们不需要在这里这样做。 MaximummemoryPool改为512
工作正常,重启tomcat即可生效
如果你的Torncat版本较低,发现上面没有输入框,你会看到步骤如下
【低版本tomcat配置方法】
在开始菜单中,你会找到“ApacheTomcat5.0”和“ConfigureTomcat”。 ”。在对话框弹出窗口中,切换到JavaVM选项卡,并将其放在JavaOptions输入框前面。输入
-Xms256m-Xmx512m
即内容输入框中的代码如下(与自己的环境不同
-Xms256m-Xmx512m
="C:\tomcat5"
=" C:\tomcat5\common\endosed"
- Xrs
3.8080/administrator/status,是你安装tomcat时输入的用户和密码,比如admin,是你安装tomcat时的密码
注:添加用户并更改conf/ p>
< username="tomcat"password="tomcat"roles="tomcat"/>
3. 进入ServerStatus页面,可以在JVM表中看到
Freememory:241.80MBTotalmemory : 254.06MBMaxmemory:508.06MB
上面的文字显示了最近空闲内存、当前内存这三个数据总内存和最大可用内存。
当确定最大内存足够大时,tomcat就可以正常工作了
最后总结一下内存设置中通常的几个参数
(1) -Xms ,栈/jvm启动时要分配的初始内存栈
(2)-Xmx,JVM允许分配的最大内存堆/栈,按需分配
(3)-Xss,设置每个线程的堆栈大小
(4)-XX:PermSize,JVM最初分配的非堆内存
(5)- XX:MaxPermSize,JVM非堆内存允许的最大分配,按需分配
示例:
-Xms256m-Xms512m-XX:PermSize=64m-XX:MaxPermSize= 128m< /p>
p
Tomcat默认可以使用128MB,在大型应用项目中这个内存是不够的,需要增加。
在Windows下,在文件/bin/中,在Unix下,在文件/bin/前面,添加以下设置:
您需要做这个。 更改这两个参数并添加值。 例如:
表示初始内存为256MB,最大内存为512MB。
扩展知识:
如何设置Tomcat JVM虚拟机的内存量
可以设置Java虚拟机使用的内存量,但如果你的选择错误,虚拟机将不会得到补偿。 您可以在命令行上更改虚拟机使用的内存量。 如下表所示,有两个参数可以设置虚拟机使用的内存量。 奇志
-XmsJVM初始化堆大小
-XmxJVM堆最大绝对值
这两个值的大小一般根据需要来设置。 初始堆大小决定了虚拟机启动时应用于系统的内存量。 一般来说,这个参数不是必需的。 但是有些应用程序在重负载的情况下占用的内存较多,这个参数意味着虚拟机启动时使用的内存比较小,这种情况下会启动很多东西。 为了满足使用,机器不得不经常增加内存。 为此,我们一般将-Xms和-Xmx设置为相同大小,最大堆栈大小受系统使用的物理内存限制。
一般来说,消耗大量数据的应用程序使用持久对象,内存使用量会快速增长。 当应用程序所需的内存超过最大阈值时,虚拟机将需要过多的内存,从而导致应用程序服务崩溃。 因此,一般建议最大堆大小配置为最大内存的80%。
上一篇:tomcat虚拟内存设置