CentOS 7怎么查看进程的内存分布

雨宇君_8366

雨宇君_8366

2026-07-24

962人浏览

原创

rss代表进程当前实际驻留在物理内存中的字节数,不含swap和未访问的mmap页;vsz代表进程整个虚拟地址空间大小,包括已分配未用内存、共享库、映射文件等,可能远超物理内存。

centos 7怎么查看进程的内存分布

ps aux 输出里的 RSS 和 VSZ 分别代表什么

查进程内存分布,第一眼就该盯住 ps aux 的 RSS 和 VSZ 列。它们不是“总内存占用”的简单相加,而是两个不同维度的度量:

  • RSS(Resident Set Size):当前实际驻留在物理内存中的字节数,不含 swap,也不含 mmap 但未访问的页 —— 这是你真正“吃掉”的物理内存
  • VSZ(Virtual Size):进程整个虚拟地址空间大小,包括已分配但未使用的内存、mmap 映射的文件、共享库、以及所有尚未换入物理内存的页 —— 它可能远大于物理内存,甚至超过系统总内存

比如一个 Java 进程 VSZ 显示 4g,RSS 只有 1.2g,说明它申请了大量虚拟内存(如堆上限设为 4g),但当前只用了 1.2g 物理内存。别误以为它占了 4g RAM。

pmap -x pid 能看到哪些关键内存段

要深入看进程内部怎么分内存,pmap -x <pid></pid> 是最直接的命令。它按内存映射区域列出每一块的 Kbytes、RSS(实际驻留)、Dirty(脏页)和权限模式:

  • 重点关注 RSS 列总和,它应与 ps aux 的 RSS 基本一致(允许少量误差)
  • 带 [ anon ] 标签的是堆、栈、mmap 分配的匿名内存;[ heap ] 和 [ stack ] 是明确标识的区域
  • 大块连续的 [ anon ] 区域(如几十 MB 或上百 MB)往往对应 JVM 堆、Python 的对象池、或 C 程序 malloc 的大块内存
  • 如果某块 Dirty 高但 RSS 低,说明它刚被写入但还没被内核调度进物理页 —— 这类区域在压力下会快速拉升 RSS

示例中 pmap -x 18512 显示多个 10MB 级别的 [ anon ] 段,正是 mongod 内部缓存和连接缓冲区的典型分布。

CentOS Linux 7.9.2009
CentOS Linux 7.9.2009

CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离

下载

top -p pid 里 %MEM 和 RES 的关系

top -p <pid></pid> 实时刷新单个进程,它的 %MEM 是 RES(即 RSS)占系统总物理内存的百分比,不是占可用内存的百分比:

  • RES 和 ps aux 的 RSS 是同一指标,单位 KB
  • %MEM 计算公式是:RES / (total physical memory in KB) * 100 —— 所以即使系统还有 2GB free,只要总内存是 8GB,一个占 1GB RSS 的进程就显示 %MEM = 12.5
  • 注意:top 默认不显示 SWAP 列,无法直接看出该进程有多少页被换出;需按 f 进入字段管理,手动启用 SWAP 才能看到

这个百分比容易误导人判断“是否异常”,尤其在高内存机器上 —— 一个 2% MEM 的进程,背后可能是 16GB RSS(总内存 800GB),必须结合绝对值看。

为什么 cat /proc//smaps 更细但难读

/proc/<pid>/smaps</pid> 是内核暴露的最全内存视图,包含 Pss(按比例分摊的共享内存)、MMUPageSize、MMUPageCount、各类型页计数等,但它不适合日常排查:

  • 输出长达数百行,没有汇总;想看总 RSS 得用 awk '/^Rss:/ {sum += $2} END {print sum}' /proc/<pid>/smaps</pid>
  • Pss 对多进程共享库(如 libc)更公平,但调试单个进程内存泄漏时意义不大
  • 某些字段(如 KernelPageSize)只在启用大页(hugepage)时才有值,普通场景为空,徒增干扰
  • 相比 pmap -x,它不按地址排序,无法直观看出哪块映射占得多

除非你在分析共享内存竞争、THP 影响或需要精确到 page fault 类型,否则优先用 pmap -x 和 ps aux 组合,够用且不易错读。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

centos

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
centos
centos

PHP中文网为大家提供centos相关信息,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,是免费的、开源的、可以重新分发的开源操作系统,PHP中文网提供centos相关文章,以及安装教程。

2023.06.16

3389

10

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

2023.10.27

6161

23

CentOS安装部署教程精选
CentOS安装部署教程精选

CentOS安装部署专题提供 CentOS Stream 9/10 服务器安装与初始化配置教程,涵盖 ISO 镜像下载、系统分区、最小化安装、网络配置、SSH远程连接、防火墙、软件源、时区同步、用户权限和常见安装故障排查,适合新手搭建 Linux 服务器环境及运维人员快速部署 CentOS 系统。

2026.05.29

174

10

CentOS运维命令大全
CentOS运维命令大全

CentOS运维命令专题整理 CentOS 服务器日常管理常用命令,覆盖系统信息查看、用户与权限管理、服务启动停止、进程监控、端口查看、日志分析、磁盘空间清理、软件包安装、定时任务配置和故障排查方法,帮助运维人员高效完成 CentOS 系统维护工作。

2026.05.29

188

10

CentOS建站环境搭建实战教程
CentOS建站环境搭建实战教程

CentOS建站环境专题围绕服务器网站部署场景,系统讲解在 CentOS 上安装和配置 Nginx、Apache、PHP、MySQL、MariaDB、PHP-FPM、SSL证书、网站目录权限、虚拟主机、反向代理和 WordPress 等常见建站环境,适合个人站长和运维人员搭建稳定 Web 服务。

2026.05.29

223

10

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

2026.10.08

0

20

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

120

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

100

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

80

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CentOS 官方文档
CentOS 官方文档

共0课时 | 0人学习

RSS高效入门教程
RSS高效入门教程

共10课时 | 9.4万人学习