基础监控的内存指标是如何计算的?

应用总内存

SAE基础监控采集的应用总内存对应于 /proc/meminfo 中的 MemTotal 值。如需查看,您可以登录Webshell运行如下命令:

cat /proc/meminfo | grep MemTotal

应用已使用内存

SAE基础监控采集的应用已使用内存不同于执行free -m命令得到的结果,而是对应于K8s workingSet(工作内存),即实际活跃使用的内存量,是由cgroup的内存使用量(memory_usage)减去不活跃缓存(inactive_file)得到的。如需计算,您可以登录Webshell运行如下脚本:

#!/bin/bash
#!/usr/bin/env bash
memory_usage_in_bytes=$(cat /sys/fs/cgroup/memory/memory.usage_in_bytes)
total_inactive_file=$(cat /sys/fs/cgroup/memory/memory.stat | grep total_inactive_file | awk '{print $2}')
working_set=$((memory_usage_in_bytes - total_inactive_file))
echo "working_set $working_set"
重要

上述脚本计算的结果是容器的已使用内存。基础监控中统计的是整个Pod的已使用内存,会略大于脚本计算结果,属于正常现象。