golangheap暴涨?

Golang什么时候会触发GC

1、其实在Golang 内部所有的GC都是通过 gcStart() 函数,然后指定一个 gcTrigger 的参数来开始的,而手动触发指定的条件值为 gcTriggerCycle 。 gcStart 是一个很复杂的函数,有兴趣的可以看一下源码实现。

2、Minor GC触发条件:当Eden区满时,触发Minor GC。

3、当 JVM 无法为一个新的对象分配空间时会触发 Minor GC,比如当 Eden 区满了。所以分配率越高,越频繁执行 Minor GC。内存池被填满的时候,其中的内容全部会被复制,指针会从0开始跟踪空闲内存。

4、最简单的分代式GC策略,按HotSpot VM的serial GC的实现来看,触发条件是:young GC:当young gen中的eden区分配满的时候触发。

5、也就是说 频繁的GC会增加应用的卡顿。 如果内存在某以阶段的峰值达到了内存空间的阈值,或者频繁地发生内存峰值(毛刺现象),刚好在这个峰值时,需要申请一块较大的内存,就会由于对 内存空间不足而导致OOM异常。

6、简单说,触发条件就是某GC算法对应区域满了,或是预测快满了。比如,各种Young GC的触发原因都是eden区满了.条件,Minor GC 执行时暂停的时间将会长很多。

golangheap暴涨?  第1张

prometheus中自带的查询指标定义解析

Gauge 类型代表一个可以任意变化的指标数据,其可增可减。

Prometheus有4大指标类型(Metrics Type),分别是Counter(计数器)、Gauge(仪表盘)、Histogram(直方图)和Summary(摘要)。

在Prometheus的配置文件中,配置了相关的Target之后,这些指标就可以从Prometheus中查询到。

通过指定kubernetes_sd_config的模式为endpoints,Prometheus会自动从Kubernetes中发现到所有的endpoints节点并作为当前Job监控的Target实例。

指标drop keep的方式是丢弃正则匹配的metric,保留其余指标,这种方式适合确定要优化的指标,仅优化部分指标。

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 15:09
下一篇 2023-09-23 15:09

相关推荐

发表回复

登录后才能评论