登录
首页 >  Golang >  Go问答

k8s中的Golang容器出现线性内存泄漏,但htop不显示此问题的原因是什么?

来源:stackoverflow

时间:2024-02-06 17:18:22 278浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《k8s中的Golang容器出现线性内存泄漏,但htop不显示此问题的原因是什么?》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我有一个用 golang 编写的微服务。 它处理图像并执行其他操作。

在 k8s 中,它显示线性内存增长

但在htop中,它具有稳定的内存使用量。我在本地测试过 - 也稳定。

我明白,k8s 显示了一些不同的内存使用情况,但它是什么?以及如何从 golang 释放/释放这些内存? 没有大堆。 gc 运行正常,我什至从 go 每 10 秒运行一次 debug.freeosmemory()

# cat /sys/fs/cgroup/memory/memory.stat
cache 3095613440
rss 189210624
rss_huge 0
shmem 0
mapped_file 1548288
dirty 15630336
writeback 0
pgpgin 7268911
pgpgout 6466952
pgfault 6519532
pgmajfault 15
inactive_anon 0
active_anon 189140992
inactive_file 628293632
active_file 2467319808
unevictable 0
hierarchical_memory_limit 8589934592
total_cache 3095613440
total_rss 189210624
total_rss_huge 0
total_shmem 0
total_mapped_file 1548288
total_dirty 15630336
total_writeback 0
total_pgpgin 7268911
total_pgpgout 6466952
total_pgfault 6519532
total_pgmajfault 15
total_inactive_anon 0
total_active_anon 189140992
total_inactive_file 628293632
total_active_file 2467319808
total_unevictable 0

正确答案


您的缓存似乎消耗了更多内存(目前为 3GB),这可能是超出内存限制的原因。 而且它不应该在 4GB 时出现 OOM,因为您的内存限制为 8GB。

以上就是《k8s中的Golang容器出现线性内存泄漏,但htop不显示此问题的原因是什么?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>