/sys/fs/cgroup/memory/memory.stat 文件记录了 cgroup 中与内存使用相关的各种指标。下面是各个指标的含义:
cache: 缓存的页的数量(以页为单位)。rss: 常驻集大小(Resident Set Size),即进程使用的物理内存大小(以页为单位)。mapped_file: 映射文件的页的数量(以页为单位)。pgpgin: 每秒从磁盘读入的页的数量(以页为单位)。pgpgout: 每秒写出到磁盘的页的数量(以页为单位)。pgfault: 每秒的页错误数量,即由于缺页而导致的页访问失败的数量。pgmajfault: 每秒的主要页错误数量,即由于无法满足内存分配请求而导致的页访问失败的数量。inactive_anon: 不活跃的匿名页的数量(以页为单位)。active_anon: 活跃的匿名页的数量(以页为单位)。inactive_file: 不活跃的文件页的数量(以页为单位)。active_file: 活跃的文件页的数量(以页为单位)。unevictable: 无法被驱逐的页的数量(以页为单位)。hierarchical_memory_limit: cgroup 的内存限制(以字节为单位)。hierarchical_memsw_limit: cgroup 的内存 + swap 限制(以字节为单位)。total_cache: 缓存的页的数量(以页为单位),包括文件页和匿名页。total_rss: 常驻集大小(以页为单位),包括文件页和匿名页。total_mapped_file: 映射文件的页的数量(以页为单位),包括文件页和匿名页。total_pgpgin: 每秒从磁盘读入的页的数量(以页为单位),包括文件页和匿名页。total_pgpgout: 每秒写出到磁盘的页的数量(以页为单位),包括文件页和匿名页。total_pgfault: 每秒的页错误数量,即由于缺页而导致的页访问失败的数量,包括文件页和匿名页。total_pgmajfault: 每秒的主要页错误数量,即由于无法满足内存分配请求而导致的页访问失败的数量,包括文件页和匿名页。total_inactive_anon: 不活跃的匿名页的数量(以页为单位),包括文件页和匿名页。total_active_anon: 活跃的匿名页的数量(以页为单位),包括文件页和匿名页。total_inactive_file: 不活跃的文件页的数量(以页为单位),包括文件页和匿名页。total_active_file: 活跃的文件页的数量(以页为单位),包括文件页和匿名页。total_unevictable: 无法被驱逐的页的数量(以页为单位),包括文件页和匿名页。usage=$(cat /sys/fs/cgroup/memory/memory.usage_in_bytes) ---APP总使用内存
kmem_usage=$(cat /sys/fs/cgroup/memory/memory.kmem.usage_in_bytes) ---内核使用内存
limit=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes) --内存限制值
memsw_limit=$(cat /sys/fs/cgroup/memory/memory.memsw.limit_in_bytes) --交换区限制值
total=$(expr $usage + $kmem_usage)
echo "Total memory usage: $total bytes"
echo "Memory limit: $limit bytes"
echo "Memory swap limit: $memsw_limit bytes"