linux中按日期滚动打印gc日志,GC日志的 user sys real 时间分析

本文介绍了GC日志中的user、sys、real时间概念及其差异,分析了为何real time可能大于sys+user time以及sys time可能大于user time的情况,涉及到磁盘IO负载、CPU资源竞争等问题,并给出了相应的排查和优化建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. GC日志时间简介

GC日志中会详细的记录每一次GC事件所花费的时间信息,每一个GC事件所花费的时间都会以"user"、"sys"、"real"3个维度来记录,这3个时间是什么意思呢?他们之间有什么区别?

real time:GC事件整个过程自然流逝的绝对时间,这个跟钟表上的时间是一致的。(ps:如果GC从8点开始,8点30结束,real time就是30分钟)。

user time:cpu花在用户态的时间

sys time:cpu花在内核态的时间,也就是说内核发生系统调用所花费的时间,不包括调用lib库的时间,因为这是发生在用户态。

2. real time > sys + user time 的情况

一般的GC事件中,real time是小于sys+user time的,因为一般是多个线程并发的去做GC,所以real time是要小于sys+user time的。比如说:user+sys是2秒,如果是有5个GC线程并发的做垃圾回收,那么real time差不多是2000/5=400ms左右。

但是,有时候会见到real time大于sys+user time的情况,比如:

[Times: user=0.20 sys=0.01, real=18.45 secs]

如果在你的GC日中出现大量的这种日志,说明你的应用可能存在下列问题:

2.1 IO负载繁重

当服务器的IO负载非常重的时候(网络、磁盘访问、用户交互),re

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值