java - Java GC日志中的“其他”是什么意思?
问题描述
我有这样的设置
- 在 EC2 上运行的 Docker 中的 Java 11 Corretto
- Java 选项:-Xms1200m -Xmx1200m -XX:+UseG1GC -Xlog:gc*
在日志中,我看到通常 GC 需要大约 100-200 毫秒,但是对于某些时间段,我看到了一些奇怪的行为:
[2074.114s][info][gc,phases] GC(39) 其他:4082.5ms
[2074.114s][info][gc,phases ] GC(39) Pre Evacuate Collection Set: 0.0ms
[2074.114s][info][gc,phases ] GC(39) Evacuate Collection Set: 161.7ms
[2074.114s][info][gc,phases ] GC(39) Post Evacuate Collection Set: 0.6ms
!!!!!!!!!!!!!![2074.114s][info][gc,phases ] GC(39) Other: 4082.5ms !!!!!!!!!!!!!!!!!!!!
[2074.114s][info][gc,heap ] GC(39) Eden regions: 253->0(574)
[2074.114s][info][gc,heap ] GC(39) Survivor regions: 49->27(38)
[2074.114s][info][gc,heap ] GC(39) Old regions: 186->229
[2074.114s][info][gc,heap ] GC(39) Humongous regions: 0->0
[2074.114s][info][gc,metaspace ] GC(39) Metaspace: 121063K->121063K(1159168K)
[2074.114s][info][gc ] GC(39) Pause Young (Normal) (G1 Evacuation Pause) 488M->256M(1200M) 4244.945ms
[2074.114s][info][gc,cpu ] GC(39) User=0.20s Sys=0.03s Real=4.25s
这个“其他”步骤是什么意思?
解决方案
这很可能是由于将日志写入磁盘所花费的时间,这被认为是“其他”任务。一个简单的解决方案是将日志写入 ramdisk(大多数发行版上的 /tmp)。
推荐阅读
- r - 提取目录中的两个或三个最新文件
- python - 如何检查pygame中是否单击了图像?
- sql - 将 SQL Join Query 语句转换为逗号分隔的行
- java - Spring Boot Batch:如何使用 CompositeWriter 和自定义 ItemWriter 实现多线程步骤
- mql5 - 1 在 mql5 上的每根蜡烛功能买入或卖出
- javascript - 如何设置与服务调用绑定的表单提交按钮,该按钮必须在 Angular/TypeScript 中提交之前完成?
- unity3d - 网格具有重叠的面/三角形
- r - 如何根据条件为哑铃图中的点着色?
- python-3.x - 将列表分配为 Dask-Dataframe 列
- flutter - 我应该如何正确处理代码中的空错误?