Ryo's blog

归档 · 2022

首页

关于

归档

Golang

一次线上内存使用率异常问题排查

一、背景朋友的一个服务,某个集群内存的RSS使用率一直在80%左右,他用的是8核16G, 双机房一共206个实例。 但是在pprof里面查的堆内存才使用了6.3G左右,程序里面主要用了6G的LocalCache所以heap用了6.3G是符合预期的。 朋友让我帮忙看下,额外的内存到底是被啥占用了。 二、基础知识2.1 TCMalloc 算法Thread-Caching Malloc 是Google开发的内存分配算法库,最开始它是作为Google的一个性能工具库perftools的一部分。 TCMalloc是用来替代传统的malloc内存分配函数。它有减少内存碎片,适用于多核,更好的并行性支持等特性。 2.2 mmap 函数mmap它的主要功能是将一个虚拟内存区域与一个磁盘上的文件关联起来,以初始化这个虚..

更多