Linux 服务器出现大量 anon 页面但进程 RSS 不高怎么定位

RSS低而AnonPages高,说明匿名页未被进程RSS统计覆盖,常见原因包括内核内存分配、大页、进程退出后页未回收等;需结合/proc/meminfo、slabtop、page_owner、tmpfs检查及THP状态综合排查。

linux 服务器出现大量 anon 页面但进程 rss 不高怎么定位

这通常说明系统中存在大量匿名页(anon pages),但这些页面未被任何进程的 RSS 统计覆盖——最常见原因是 内核内存分配(如 slab、page cache 的 anon 部分)、大页(THP)、或进程已退出但页未及时回收。RSS 低而 anon 高,核心矛盾在于:RSS 只统计当前进程映射且活跃的匿名页,不包含内核占用、共享页、延迟释放页等。

查清 anon 页面真实归属

不要只看 /proc/meminfoAnonPages,它只是总和。需逐层下钻:

  • 运行 cat /proc/meminfo | grep -E "(AnonPages|Shmem|FilePages|SReclaimable|Slab)",观察 Shmem(tmpfs/shm)是否异常高——tmpfs 文件会被计入 AnonPages,但不计入任何进程 RSS;
  • 检查 /sys/kernel/debug/page_owner(需开启 CONFIG_PAGE_OWNER)可追溯每页分配,定位内核模块或驱动的匿名页泄漏;
  • slabtop -o 查看 slab 中 anon 相关缓存(如 kmalloc-*page-anon_vma)是否持续增长;
  • 运行 echo m > /proc/sysrq-trigger 后检查 dmesg,确认是否有 page allocation failure 或大量 direct reclaim。

排查 tmpfs 和 POSIX 共享内存

tmpfs 文件(/dev/shm、/run、自定义挂载点)的内容属于匿名页,但归属文件系统而非进程。即使进程已退出,只要文件未 unlink,页就一直驻留:

京点点

京点点

京东AIGC内容生成平台

下载

  • 执行 find /dev/shm /run -xdev -type f -ls 2>/dev/null | head -20,看是否有大文件残留;
  • ipcs -m 检查 System V 共享内存段,特别是 cpid 为 0 或 lpid 异常的段;
  • 检查应用是否使用 mmap(MAP_ANONYMOUS|MAP_SHARED) 创建大块共享匿名区,且未 munmap 或未设 close-on-exec 导致子进程继承后泄漏。

检查透明大页(THP)与内存碎片

THP 的 fallback 分配或拆分失败时,可能产生大量孤立的 anon huge page 后备页,RSS 不体现,但计入 AnonPages:

  • 查看 cat /sys/kernel/mm/transparent_hugepage/{defrag,enabled} 状态;
  • 检查 /proc/buddyinfo 是否存在大量不可用的高阶空闲页(如 order-9+ 缺失),导致 THP 折叠失败、退化为普通页堆积;
  • 运行 grep -i "thp/|huge" /proc/vmstat,关注 pgmajfaultthp_splitthp_collapse_alloc 等指标突增情况。

确认是否存在僵尸页或延迟回收

进程 exit 后,其 anon vma 若仍有 page fault 引用(如 core dump 中断、ptrace 暂停、或 cgroup memory.pressure 高导致延迟 LRU 移动),页可能滞留在 inactive anon LRU 链表中:

  • cat /proc/vmstat | grep -E "(pgpgin|pgpgout|pgmajfault|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpgin|pgpgout|pgpg

https://www.php.cn/faq/1996001.html

发表回复

Your email address will not be published. Required fields are marked *