如何通过命令行查询Linux系统中目标进程的CPU和内存使用情况?
美国、香港服务器
如何通过命令行查询Linux系统中目标进程的CPU和内存使用情况?
10-28 来源:
在 Linux 系统中,通过命令行查询目标进程的 CPU 和内存使用情况,可使用ps、top、htop、pidstat等工具,针对 “单次查询”“实时监控”“详细统计” 等不同场景选择合适的方法。以下是具体操作:
一、单次查询:快速获取当前 CPU / 内存占用(适合脚本或临时查看)
方法 1:ps命令(最常用,支持按目标 PID 或进程名查询)
ps命令可一次性输出进程的 CPU 使用率、内存占用等信息,结合grep或 PID 精准筛选。
(1)已知进程 PID(如1234),查询其资源占用:
bash
ps -p 1234 -o %cpu,%mem,rss,vsize,cmd
参数说明:
-p 1234:指定进程 PID(1234 替换为实际 PID);
-o:自定义输出格式,包含:
%cpu:CPU 使用率(单位 %);
%mem:内存使用率(单位 %);
rss:实际使用的物理内存(单位 KB);
vsize:虚拟内存大小(单位 KB);
cmd:进程启动命令(用于确认进程身份)。
输出示例:
plaintext
%CPU %MEM RSS VSZ CMD
2.5 1.8 56780 234560 java -jar /opt/app/service.jar
解读:该进程 CPU 使用率 2.5%,内存使用率 1.8%,物理内存占用 56780KB(约 55MB),虚拟内存 234560KB(约 229MB)。
(2)已知进程名(如java),查询所有相关进程的资源占用:
bash
ps -ef | grep "java" | grep -v "grep" | awk "{print $2}" | xargs ps -p -o %cpu,%mem,rss,vsize,cmd
逻辑:先通过ps -ef | grep找到java进程的 PID,再用xargs传递给ps -p查询资源占用。
方法 2:pgrep + ps组合(更简洁,适合已知进程名)
bash
ps -p $(pgrep -f "java") -o %cpu,%mem,rss,vsize,cmd
说明:$(pgrep -f "java")获取所有含 “java” 的进程 PID,传递给ps -p查询资源。
二、实时监控:动态查看 CPU / 内存变化(适合观察进程波动)
方法 1:top命令(系统自带,实时刷新)
top是经典的实时进程监控工具,默认每 3 秒刷新一次,可聚焦目标进程。
操作步骤:
执行top命令进入交互界面:
bash
top
按o(筛选),输入PID=1234(替换为目标 PID),回车后仅显示该进程;
或按k,输入 PID 后回车,可直接终止进程(按需使用)。
关键指标解读(对应目标进程行):
%CPU:CPU 使用率(累计值,越高表示消耗越大);
%MEM:内存使用率(占总内存的百分比);
RES:物理内存占用(单位 KB,同ps的rss);
VIRT:虚拟内存大小(单位 KB,同ps的vsize)。
按q退出。
方法 2:htop命令(增强版,更直观,需安装)
htop是top的升级版,支持鼠标操作和更友好的界面,适合可视化监控。
操作步骤:
安装htop(若未安装):
bash
sudo yum install htop # CentOS/RHEL
sudo apt install htop # Ubuntu/Debian
执行htop进入界面,按/输入进程名或 PID,回车筛选目标进程:
bash
htop
目标进程行的CPU%和MEM%即为实时使用率,支持上下键切换进程,按F10退出。
三、详细统计:按时间维度记录 CPU / 内存使用(适合性能分析)
方法:pidstat命令(系统性能工具,支持定时采样)
pidstat是sysstat工具集中的命令,可按指定间隔采样进程的 CPU、内存、I/O 等指标,生成时间序列数据。
操作步骤:
安装sysstat(若未安装):
bash
sudo yum install sysstat # CentOS/RHEL
sudo apt install sysstat # Ubuntu/Debian
监控目标 PID(如 1234),每 2 秒采样一次,共采样 5 次:
bash
pidstat -p 1234 2 5
参数说明:
-p 1234:指定进程 PID;
2:采样间隔(秒);
5:采样次数(省略则持续采样,按Ctrl+C终止)。
输出示例及关键指标:
plaintext
16:30:00 PID %usr %system %guest %CPU CPU Command
16:30:02 1234 1.50 1.00 0.00 2.50 1 java
16:30:04 1234 2.00 0.50 0.00 2.50 1 java
...
%usr:用户态 CPU 使用率;
%system:内核态 CPU 使用率;
%CPU:总 CPU 使用率(%usr + %system)。
若需查看内存详情,加-r参数:
bash
pidstat -p 1234 -r 2 5 # 显示内存页相关统计
总结:不同场景的工具选择
需求场景 推荐工具 / 命令 优势
一次性查询资源占用 ps -p 进程PID -o %cpu,%mem,rss,vsize 轻量快速,适合脚本集成
实时监控资源变化 top(基础)或htop(增强) 动态观察波动,htop更直观
按时间采样分析性能 pidstat -p 进程PID 间隔 次数 生成时序数据,便于分析资源使用趋势
通过这些工具,可全面掌握目标进程的 CPU 和内存使用情况,为性能优化、资源调度提供依据。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快