由于 mysql 内存持续增长,远超理论最大内存,使用 jemalloc 进行统计
[mysqld_safe]
malloc-lib=/usr/lib64/libjemalloc.so
一段时间后 jemalloc 的 stats 如下
Allocated: 5886533096, active: 6123192320, metadata: 137662464 (n_thp 0), resident: 10975715328, mapped: 11279020032, retained: 3251097600
然而使用 top 可以看到 mysql 进程为
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6204 mysql 20 0 26.9g 21g 14m S 17.3 17.5 214:25.46 mysqld
为什么两者显示进程的内存大小差距这么大?可能有部分内存申请不走 jemalloc 吗
mysql 版本 5.7.22
jemalloc 版本 5.2.1