Dmi*_*kiy 48 java performance garbage-collection g1gc java-9
我将1个实例(2个vCPU,2GB RAM,加载〜4k req/sec)切换到Java 9(来自最新的Java 8).有一段时间,一切都很好,CPU使用率和以前一样.然而,在大约6小时后,CPU消耗无缘无故地增加了4%(从21%增加到25%).我没有流量峰值,没有内存消耗增加,没有度量标准更改(我在代码中的每个方法都有计数器).没有.
我离开这个实例大约12个小时,期待它会恢复原状.但没有改变.它开始消耗更多的CPU.
top命令显示实例的CPU峰值比Java服务器进程通常多.我最近读到G1不适合高吞吐量.所以我得出结论,理由可能在G1.
我重新启动了实例:
java -XX:+UseParallelGC -jar server-0.28.0.jar
Run Code Online (Sandbox Code Playgroud)
经过约20小时的监测,一切都和以前一样好.与前几天相比,CPU消耗量达到了21%的水平.
Java 9部署后的CPU使用率(6小时):
7小时后CPU增加+ 12小时"未触及"(7d比例):
CPU后 - XX:+UseParallelGC(24h刻度):
所以我的问题是 - 是G1的预期行为吗?其他人看到类似的东西?
Ubuntu 16.04 x64
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
Run Code Online (Sandbox Code Playgroud)
编辑03.01.2019
试图在java 10.0.2上使用G1运行一个相同的服务器:
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
Run Code Online (Sandbox Code Playgroud)
UseParallelGC服务器重启后,G1消耗的CPU比刚刚多40%.
| 归档时间: |
|
| 查看次数: |
1628 次 |
| 最近记录: |