当前位置:首页 > 内存 > 正文

修改jvm内存(jvm内存溢出)

  • 内存
  • 2024-07-17 22:47:24
  • 2738

一、怎么设置Tomcat的JVM虚拟机内存大小

JVM内存有几种类型

Windows下修改JVM内存大小:

情况一:对于未压缩版本的Tomcat,需要通过启动来启动Tomcat。加载配置的bat

添加到Tomcatbin下的

remGuessCATALINA_HOMEifnotdefinition

在setCURRENT_DIR=%cd%后添加,红色新增。

p

setJAVA_OPTS=-Xms256m-Xmx512m-XX:PermSize=128M-XX:MaxNewSize=256m-XX:MaxPermSize=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交换空间。

-Xss每个线程的堆栈大小

-verbose:gc实际的垃圾收集信息

-Xloggc:指定的垃圾收集日志文件

-XX:+UseParNewGC缩短二次编译时间

-XX:+UseConcMarkSweepGC缩短主编译时间

-XX:userParNewGC可用于设置并行池(多CPU)

-XX:可使用ParallelGCThreads增加并行度(多CPU)

-XX:可使用ParallelGC准备后用于使用并行池扫描(CPUsMultipleCentral)


二、如何设置jvm内存-XmxJavaHeap的最大值,默认值为物理内存的1/4。最佳设置取决于计算机的物理内存大小和其他内存开销。
设置为与-Xmx相同的值。您可以在开发和测试机器上保留JVM的默认值。
;
2.如何分配JVM内存设置:
(1)在命令提示符下启动并使用JVM时(仅对当前运行的类Test有效):java-Xmx128m-Xms64m-Xmn32m-Xss16mTest(2)在集成开发环境(如Eclipse)中启动并使用JVM:
a.在Eclipse根目录中打开。默认值如下(这里设置的JVM是当前开发工具运行的JVM内存分配):-vmargs-Xms40m-Xmx256m堆内存(例如-XX:PermSize=56m,-XX:MaxPermSize=128m)。这里设置的参数值可以通过如下设置显示在开发工具状态栏中:在Eclipse根目录中创建一个文件选项。文件内容为: