性能分析中,我们通常有3个指标要特别关注:CPU、内存、网络。
一般来说,CPU和网络是比较容易理解的,但是内存是不好理解的,主要是内存的种类比较多,采集的时候分为free和available两种方式。
日常分析使用的是available的方式,主要是因为available更能反映当前系统的内存使用情况。
但是available的计算方式比较复杂,涉及到很多内核的知识。这里以prometheus的 node_exporter的内存采集代码为例,来分析一下内存的计算方式。
首先建立debug版本的程序
有了debug版本的程序,可以方便调试。
可以参考:
2025年8月30日大约 4 分钟