记一次内存占用异常排查 —— memory ballast 被分配了物理内存
原文中文,约4800字,阅读约需12分钟。发表于: 。memory ballast 的概念这里不再赘述,相信在使用 Golang 的读者应该都知道。确实不了解的话可以阅读提出这个概念的文章,里面有详细的描述。这几年,ballast 被大量运用,在大家的认知里,ballast 是降低 GC 频率的一个简单、实用的方法,我也一直没有看到过关于它的负面报道 —— 直到这次之前。 在 golang-nuts...
memory ballast 是一种降低 GC 频率的方法,Go 1.19 提出了 memory target 的新功能,可以通过环境变量或 debug.SetMemoryTarget() 设置 GC 触发的目标堆大小,uber 提出的 gc tuner 方案可以动态调整 GC 触发比例,仍然使用 ballast 时,可以尝试调整 GOGC 和 heapArena 的元数据来降低问题发生概率。