






















在Linux中查询进程内存占用有多种方法,以下是常用的几种方式:
# 查看特定进程的内存占用(以KB为单位)
ps aux | grep 进程名
# 更详细的内存信息
ps aux --sort=-%mem | head -20 # 按内存排序前20个进程
# 查看指定PID的内存信息
ps -p PID -o pid,ppid,cmd,%mem,%cpu,rss,vsz
# 指定显示格式
ps -e -o pid,comm,rss,vsz,%mem --sort -rss
# 实时查看进程内存占用
top
# 按内存使用排序(运行top后按M)
# 查看特定进程
top -p PID
# 批处理模式,只运行一次
top -b -n 1 | grep 进程名
htop
# 安装:sudo apt install htop 或 sudo yum install htop
# 查看进程的详细内存映射
pmap -x PID
# 显示更详细信息
pmap -XX PID
# 查看进程状态信息(包含内存)
cat /proc/PID/status
# 查看进程内存统计
cat /proc/PID/statm
# 输出7个数字:总大小 驻留集大小 共享页数 代码段 库 数据/栈 脏页
# 查看进程内存映射详情
cat /proc/PID/maps
cat /proc/PID/smaps # 更详细
free -h
# 选项:-h 易读格式,-m MB显示,-g GB显示
# 查找占用内存最高的10个进程
ps aux --sort=-%mem | head -10
# 查看Java进程的内存(显示单位MB)
ps aux | grep java | grep -v grep | awk '{print $2, $4, $6/1024"MB", $11}'
# 持续监控某个进程的内存
watch -n 1 'ps -p PID -o pid,rss,%mem,cmd'
# 查看进程的RSS(实际物理内存)和VSZ(虚拟内存)
ps -eo pid,comm,rss,vsz,pmem,pcpu --sort -rss | head -20
#!/bin/bash
# 查找并显示指定进程的内存使用
if [ $# -eq 0 ]; then
echo "用法: $0 进程名"
exit 1
fi
PROCESS_NAME=$1
PIDS=$(pgrep $PROCESS_NAME)
if [ -z "$PIDS" ]; then
echo "未找到进程: $PROCESS_NAME"
exit 1
fi
echo "进程 $PROCESS_NAME 的内存使用情况:"
echo "----------------------------------"
ps -p $PIDS -o pid,ppid,user,%cpu,%mem,rss,vsz,cmd --no-headers
选择哪种方法取决于你需要的信息详细程度和实时性要求。ps 适合一次性查看,top/htop 适合实时监控,/proc 文件系统提供最详细的信息。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。