腾讯Kona使用说明

腾讯Kona 1年前 (2023-12-11) 浏览 44

TencentKona-8 支持以下特性:Default CDS Archive 提高启动速度Java Flight Recorder 采集 Java 应用程序的诊断信息Optimized Work Stealing Threads GC 线程调度优化 G1 FullGC 并行化G1GC 性能优化G1 Concurrent Remembered Set Rebuild 支持协程版本介绍说明:您可以通过单击 +展开全部,查看一个或全部特性的详细说明。展开全部Default CDS ArchiveTencent Kona 默认打开 Default CDS Archive 功能, 您可以通过以下启动标志关闭该功能。

java -Xshare:off 

Java Flight Recorder(JFR)Tencent Kona 默认关闭 JFR 功能, 您可通过以下步骤开启使用。

操作步骤

1. 使用以下标志启动 Java。

java -XX:+FlightRecorder

2. 当应用程序运行时,执行以下命令采集 JFR 数据。

jcmd  JFR.start name= filename=.jfr 

3. 执行以下命令停止 JFR 采集。

jcmd  JFR.stop

JFR 数据处理

请使用 java mission control (jmc) 7.0以上版本打开 *.jfr 文件。

了解更多

请参见 Oracle 的 JFR 官方文档GC 线程调度优化 Optimized Work Stealing Threads开启方式默认开启,在启动参数里面显示添加 -XX:-UseOWSTTaskTerminator 关闭。原理GC 并行线程通过 Work Stealing 进行负载均衡,减少 GC 停顿时间。原有 Work Stealing 算法中所有空闲 GC 线程都会频繁尝试 Work Stealing 造成 CPU 资源浪费,新算法采用一个 master 线程监控是否进行 Work Stealing 并在适当时机唤醒其它空闲 GC 线程,极大减少 CPU 资源浪费和进程间的 CPU 资源竞争。OWST 在 OpenJDK 社区版12以后支持,大数据 Hibench 测试有最多30%的性能提升,平均提升8%。G1 FullGC 并行化开启方式在启动参数里面显示添加 -XX:+G1ParallelFullGC,这个参数默认是 false。原理官方 OpenJDK8u 中默认是 G1 FullGC 是单线程全停机的 GC,在 TencentKona8.0.4的版本发布的 G1 的 FullGC 并行化功能,可以部分阶段多线程执行 GC,有效降低 FullGC 的停机时间,改善系统最坏情况下的性能。G1 性能优化原理未来的 CMS 被社区放弃,因此 G1 GC 的优化成为社区最主要的工作,Tencent Kona JDK8持续进行一系列的 G1 GC 的性能优化,包括很多 GC 过程的并行化优化:evacuation failure 的一些过程的并行化,free collection set 的并行化以及一系列的 G1 GC 算法细节的优化,具体详见一些代码仓库的 commit log。G1 Concurrent Remembered Set Rebuild 支持开启方式在启动参数里添加 -XX:+G1RebuildRemSet,该参数默认是 false(不默认则打开)。原理G1 会一直维护老区的 remembered set,这会带来很多的内存以及 GC 吞吐量的开销,在 TencentKona8.0.5的版本之后,会在 concurrent 阶段重新 rebuild 老区的 remembered set,降低 G1GC 的内存开销以及提升 G1GC 的吞量。协程版本介绍简介KonaJDK 参考社区 Loom 方案在 Kona8 中提供协程解决方案。KonaJDK 中提供了 Java 协程实现 VirtualThread,相比 Java 线程,协程切换快、占用内存少,在保持原有 Java 同步编程的模式的情况下,降低了线程创建、切换的开销,适用于高并发的业务场景。KonaJDK8 提供协程 VirtualThread 是一个标准的 Java/lang/Thread 子类,支持 Thread 的绝大部分操作、线程工厂(ThreadFactory),可以方便地将现有的程序切换使用协程。用户代码层面主要使用的接口在 java/lang/Thread、sun/misc/VirtualThreads 中。VirtualThreads 提供协程的挂起(park)、恢复(unpark)的操作接口,在调用前需要通过 Thread.isVirtual() 接口确定当前 park/unpark 的线程是否是协程。Thread 提供了创建协程的 API,协程操作的接口都直接复用了线程的接口,包括 start、join、sleep、interrupt 等。选项-XX:+/-UseKonaFiber 控制打开、关闭协程功能(默认打开)。

官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?