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

jvm内存

  • 内存
  • 2024-07-30 08:41:09
  • 1600

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

JVM内存有几种类型

在Windows中优化JVM内存大小:

场景一:对于Tomcat的发布版本,需要在启动时启动Tomcat。bat加载配置

添加到tomcatbin中的

remGuessCATALINA_HOMEifnotdefined

AddCURRENT_DIR=%cd%red保存后是新的。已添加。

setJAVA_OPTS=-Xms256m-Xmx512m-XX:PermSize=128M-XX:MaxNewSize=256m-XX:MaxPermSize=ss=true

场景2:安装的Tomcat版本中没有

Windows服务读取注册表中的bin\值,而不是Catalina设置。.bat。

编辑注册表HKEY_LOCAL_MACHINE\SOFTWARE\ApacheSoftwareFoundation\TomcatServiceManager\Tomcat5\Parameters\JavaOptions

初始值

="c:\ApacheGroup\Tomcat5.

加入-Xms300m-Xmx350m

重启Tomcat服务,设置生效

jvm参数说明:

-server作为JDK服务器

-XmsjavaHeap初始大小启用版本1/64。建议设置为80%物理内存。

-XX:MaxPermSize设置内存池的最大大小

-XX:SurvivorRatio=2,默认为2。例如

-XX:NewSize是新创建的pool的初始大小,默认值为2M

新创建的pool的默认值为32M,被忽略会导致消耗一个G。疯狂的物理内存,然后一个G来消耗swap。

-Xss每个线程的堆栈大小

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

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

>

-XX:+UseParNewGC缩短次要收集时间

-XX:+UseConcMarkSweepGC缩短主收集时间

-XX:userParNewGC可用于设置上并行收集(多CPU)

-XX:ParallelGCThreads可用于添加并行(多CPU)

-XX:UseParallelGC配置清理收集器使用并行(多CPU)后)


二、jvm的内存如何管理典型设置:
•java-Xmx3550m-Xms3550m-Xmn2g-Xss128k
-Xmx3550m:设置JVM的最大可用内存为3550M
-Xms3550m:配置JVM驱动内存。3550米。该值可以与-Xmx类似的方式设置,以防止JVM在每次垃圾回收完成后重新分配内存。
-Xmn2g:设置年轻代大小为2G。总堆大小=年轻代大小+老年代大小+持久代大小。持久代一般固定大小为64m,因此增加年轻代会减少老年代的大小。该值对系统性能有重大影响。Sun官方推荐整个堆的3/8配置。
-Xss128k:设置每个线程的堆栈大小。JDK5.0之后,每个线程的堆栈大小为1MB,以前每个线程的堆栈大小为256KB,调整更多应用程序线程所需的内存大小。在相同的物理内存下,减小这个值可以产生更多的线程。但是,操作系统对进程中的线程数量仍然有限制,并且不能无限生成经验值在3000到5000左右。
•java-Xmx3550m-Xms3550m-Xss128k-XX:NewRatio=4-XX:SurvivorRatio=4-XX:MaxPermSize=16m-XX:MaxTenuringThreshold=0
-XX:NewRatio=4:设置年轻代(包括Eden和两个幸存者区)与老年代(不包括持久代)的比例。当设置为4时,年轻代与老年代的比例为1:4,年轻代代表整个堆栈的1/5
-XX:SurvivorRatio=4:设置Eden的大小。年轻一代中的区和Survivor区的比例。设置为4时,2个survivorzone与1个Edenzone的比例为2:4,1个survivorzone代表整个YoungGeneration的1/6
-XX:MaxPermSize=16m:设置YoungGeneration的大小持久的一代。16m处。
-XX:MaxTenuringThreshold=0:设置垃圾箱的最大寿命。如果设置为0,年轻代的对象将直接进入老年代,不经过Survivor区。对于老年代数量较多的应用,可以提高效率。如果该值设置为较高的值,年轻代中的item会被多次复制到Survivor区,这样可以增加年轻代中item的生存时间,增加年轻代中被回收的可能性。

上一篇:jvm内存划分

下一篇:jvm内存是什么意思