增加 tomcat 的内存(JAVA_OPTS)

本文详细介绍了JVM的各种参数设置,包括初始堆大小、最大堆大小、永久代大小等,并提供了具体的配置示例。

 



 

 

 

在 catalina.sh 中添加

 

JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=256m"

 

 

 

 

 

 

 

 

 

 

JAVA_OPTS ,顾名思义,是用来设置JVM相关运行参数的变量。

 

JVM:JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k"

-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx:java heap最大值,使用的最大内存
上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss:每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC :缩短minor收集的时间
-XX:+UseConcMarkSweepGC :缩短major收集的时间
提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

### 配置 Linux 环境下 Tomcat 的 `JAVA_OPTS` 参数调优 在 Linux 环境中,配置 Tomcat 的 `JAVA_OPTS` 是优化 JVM 性能的重要手段。`JAVA_OPTS` 用于设置 JVM 的启动参数,包括堆内存大小、垃圾回收器、GC 日志输出等关键配置。合理设置这些参数可以有效降低内存占用,提升 Tomcat 的稳定性和响应速度。 在 Tomcat 的 `bin` 目录下,可以通过创建 `setenv.sh` 文件来设置 `JAVA_OPTS`。这种方式优于直接修改 `catalina.sh`,因为 `setenv.sh` 是独立的配置文件,便于维护和版本控制。该方法在 Tomcat 8 及更高版本中被广泛使用[^1]。 ```bash # 创建 setenv.sh 文件 touch /path/to/tomcat/bin/setenv.sh chmod +x /path/to/tomcat/bin/setenv.sh ``` 编辑 `setenv.sh` 文件,设置 `JAVA_OPTS` 参数: ```bash #!/bin/sh # 设置 JVM 参数 JAVA_OPTS="-server -Xms2g -Xmx2g" JAVA_OPTS="$JAVA_OPTS -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m" JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC" JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/tomcat/gc.log" JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8" ``` #### 参数说明: - `-server`:启用 Server 模式,适用于长期运行的服务器应用,性能更优。 - `-Xms2g -Xmx2g`:设置 JVM 初始堆内存和最大堆内存均为 2GB,避免堆内存动态调整带来的性能损耗。通常建议将 `-Xms` 和 `-Xmx` 设置为相同值以提升性能[^5]。 - `-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m`:设置元空间的初始大小和最大值,防止元空间无限增长导致内存溢出。JDK 1.8 之后元空间取代了永久代(PermGen)[^1]。 - `-XX:+UseG1GC`:启用 G1 垃圾回收器,适用于大堆内存和低延迟场景。 - `-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/tomcat/gc.log`:启用详细的 GC 日志记录,便于后续分析和优化。 - `-Dfile.encoding=UTF-8`:强制使用 UTF-8 编码,避免因平台差异导致的乱码问题。 此外,如果仅用于 Tomcat,推荐使用 `CATALINA_OPTS` 而非 `JAVA_OPTS`,因为 `JAVA_OPTS` 也可能被其他 Java 应用程序使用,而 `CATALINA_OPTS` 专用于 Tomcat 启动时的 JVM 参数设置[^2]。 --- ### 示例:完整的 `setenv.sh` 文件 ```bash #!/bin/sh # 设置 JVM 参数 CATALINA_OPTS="-server -Xms2g -Xmx2g" CATALINA_OPTS="$CATALINA_OPTS -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m" CATALINA_OPTS="$CATALINA_OPTS -XX:+UseG1GC" CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/tomcat/gc.log" CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8" ``` --- ### 监控与调优建议 配置完成后,建议使用以下工具进行监控和调优: - `jstat`:实时查看 GC 情况,分析 GC 频率和效率。 - `jmap`:生成堆转储文件,用于排查内存泄漏。 - `VisualVM`:图形化工具,提供全面的 JVM 运行状态监控,包括内存、线程、GC 等。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值