linux docker 内如何查看每个进程内存的占用量
在 Docker 容器内,你可以使用 Linux 的工具来查看每个进程内存的占用量。以下是几种常用的方法:
方法1: 使用 ps
命令
ps
命令可以显示当前运行的进程,并且支持查看每个进程的内存使用情况。
ps aux --sort=-%mem
其中:
aux
: 显示所有进程的详细信息;--sort=-%mem
: 按内存使用率降序排列。
在输出中,有一列 %MEM
表示进程占用的**百分比内存**,另一列 RSS
表示**实际使用的物理内存**(以 KB 为单位)。
方法2: 使用 top
命令
top
是实时监控系统资源使用情况的工具,包含每个进程的内存和 CPU 使用情况。
top
在输出中:
RES
: 表示当前进程实际占用的物理内存(Resident Memory);%MEM
: 表示进程的内存使用比例。
如果你只想聚焦内存,可以按 Shift + f
调出列选择,选择 %MEM
或 RES
排序。
方法3: 使用 htop
工具 (可选)
htop
是更好用的交互式工具,比 top
更人性化。你可以在 Docker 容器内安装它:
apt-get update && apt-get install -y htop htop
然后你可以按 F6
键选择内存列,按内存占用量排序。
方法4: 直接从 /proc
文件系统查看
每个进程都有对应的 /proc/<pid>
目录,里面包含资源使用信息。例如:
cat /proc/<pid>/status | grep -i memory
或者:
cat /proc/<pid>/smaps
你可以通过脚本遍历 /proc
下的所有 PID 来统计内存使用:
for pid in $(ls /proc | grep -E '^[0-9]+$'); do echo -n "PID: $pid " grep VmRSS /proc/$pid/status 2>/dev/null done
VmRSS
即为进程实际占用的**物理内存**。
注意事项
由于 Docker 容器是在 cgroup 限制范围内运行,进程的内存占用可能会受到 cgroup 限制的影响。因此,你也可以检查 cgroup 的内存限制文件:
cat /sys/fs/cgroup/memory/memory.limit_in_bytes
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:https://www.choupangxia.com/2025/09/16/linux-docker-mem/