几个常用jvm配置


高吞吐量网站:

-server -Xmx2g -Xms2g -Xmn1280m -XX:PermSize=256m -Xss1m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80

高响应:



gc分析参数:

+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:/home/admin/gc.log


调试:

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=$debug_port,server=y,suspend=n 


Java JVM调优常用配置可分为以下几类: ### 堆内存相关 - `-Xms`:设置堆的初始大小,例如 `-Xms512m` 表示初始堆大小为 512MB。 - `-Xmx`:设置堆的最大大小,通常建议将 `-Xms` 和 `-Xmx` 设置为相同的值,以避免堆自动扩展带来的性能开销,如 `-Xmx512m` 表示最大堆大小为 512MB。 - `-Xmn`:设置新生代的大小,例如 `-Xmn256m` 表示新生代大小为 256MB。合理设置新生代大小可以减少老年代的垃圾回收频率。 ### 垃圾回收器相关 - `-XX:+UseSerialGC`:使用串行垃圾回收器,适用于单线程环境和内存较小的应用。 - `-XX:+UseParallelGC`:使用并行垃圾回收器,多个线程同时进行垃圾回收,提高了垃圾回收的效率,适用于多 CPU 环境下对吞吐量要求较高的应用。 - `-XX:+UseConcMarkSweepGC`:使用 CMS(Concurrent Mark Sweep)垃圾回收器,以获取最短回收停顿时间为目标,适用于对响应时间要求较高的应用。 - `-XX:+UseG1GC`:使用 G1(Garbage First)垃圾回收器,适用于大内存、多 CPU 的服务器环境,它将堆划分为多个大小相等的区域,避免了全堆扫描,提高了垃圾回收的效率。 ### 元数据区相关 - `-XX:MetaspaceSize`:控制类元数据区初始大小,例如 `-XX:MetaspaceSize=128m` 表示元数据区初始大小为 128MB。 - `-XX:MaxMetaspaceSize`:设置元数据区的最大大小,如 `-XX:MaxMetaspaceSize=256m` 表示元数据区最大大小为 256MB。 ### 其他常用配置 - `-XX:+AlwaysPreTouch`:启动时预热内存页,避免运行时页面分配开销[^3]。 - `-XX:+HeapDumpOnOutOfMemoryError`:内存溢出时生成 dump 文件,方便后续分析问题。 - `-XX:+DisableExplicitGC`:禁止手动 fullGC,如果配置,则 `System.gc()` 将无效,比如在为 `DirectByteBuffer` 分配空间过程中发现直接内存不足时会显式调用 `System.gc()` [^4]。 以下是一个示例的 JVM 启动参数配置: ``` java -Xms512m -Xmx512m -Xmn256m -XX:+UseG1GC -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+AlwaysPreTouch -XX:+HeapDumpOnOutOfMemoryError -jar yourApp.jar ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值