jdk1.6版本的tomcat,JVM配置说明

1、服务器配置:

cpu 为16核心,内存为47G的配置

2、JVM的配置如下:

export JAVA_OPTS="-server -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Xms25600m -Xmx25600m -Xss2m -XX:NewSize=2048m -XX:MaxNewSize=2048m -XX:PermSize=640m -XX:MaxPermSize=1200m -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+DisableExplicitGC -XX:ParallelGCThreads=15 -XX:+UseCompressedOops -Djava.awt.headless=true -Dsun.java2d.dpiaware=false -Dsun.java2d.noddraw=true -Dsun.java2d.opengl=True -Djava.awt.image.rendering=priority -XX:NewRatio=3 -XX:SurvivorRatio=5 -XX:MaxDirectMemorySize=25600m -XX:MaxTenuringThreshold=8 -Djava.security.egd=file:/dev/urandom"

3、配置说明--------通义灵码解说

你给出的JVM配置针对的是一个具有16核CPU和47GB RAM的服务器,运行在JDK 1.6上。下面是对你配置的分析和建议:

堆内存大小:

你设置了-Xms25600m和-Xmx25600m,意味着JVM堆的初始大小和最大大小均为25GB。考虑到服务器有47GB的RAM,这个设置是合理的,为应用提供了充足的内存空间。然而,是否最优取决于应用的实际内存需求和行为。

线程栈大小:

你将-Xss设置为2MB。这个值对于大多数应用来说偏大,通常线程栈大小设置为1MB或更小。如果应用不需要这么大的线程栈,可以考虑减小这个值,以节省内存。

年轻代大小:

XX:NewSize=2048m和XX:MaxNewSize=2048m设定了年轻代的大小为2GB。对于25GB的总堆,这个比例看起来合理,但具体是否足够取决于应用产生的短期对象的数量和生命周期。

永久代大小:

XX:PermSize=640m和XX:MaxPermSize=1200m设定了永久代的大小。在JDK 1.6中,永久代用于存储类元数据。如果应用加载了大量类,可能需要更大的永久代。

垃圾收集器:

你启用了-XX:+UseParallelGC和-XX:+UseParallelOldGC,这将使用并行垃圾收集器。对于多核CPU,这通常是最佳选择,因为它能有效利用多核优势进行垃圾收集。

并行GC线程数:

你设置了-XX:ParallelGCThreads=15。对于16核的CPU,这个值接近于最大值,可以充分利用CPU资源进行垃圾收集。但是,如果发现CPU使用率过高或应用响应时间受影响,可以考虑稍微减少这个值。

其他配置:

XX:NewRatio=3设定了老年代与年轻代的大小比例。

XX:SurvivorRatio=5设定了Survivor区与Eden区的大小比例。

XX:MaxDirectMemorySize=25600m设定了直接内存的最大大小,这取决于应用对NIO缓冲区的需求。

XX:MaxTenuringThreshold=8设定了对象在年轻代中存活的次数阈值。

总体而言,你的配置看起来是经过深思熟虑的,特别是对于JDK 1.6和多核CPU的服务器。但是,是否真正"合理"还要看应用的实际情况。建议在生产部署前,先在测试环境中运行并监控应用的性能,包括GC行为、内存使用情况和CPU使用率,以确保配置满足应用的性能需求。如果有必要,根据监控结果进行适当的调整。例如,如果发现年轻代的大小不足以应对短生命周期对象的生成速率,可能需要增加年轻代的大小;如果永久代经常接近满载,可能需要增加MaxPermSize的值

相关推荐
桦说编程2 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅3 小时前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者4 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺4 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart6 小时前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP7 小时前
MyBatis-mybatis入门与增删改查
java
孟陬10 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端
想用offer打牌10 小时前
一站式了解四种限流算法
java·后端·go
华仔啊10 小时前
Java 开发千万别给布尔变量加 is 前缀!很容易背锅
java