要查看Linux进程的CPU和内存占用,最直接的方法是使用top、ps和htop命令。top提供实时动态监控,可按P键以CPU使用率排序,按M键以内存使用率排序,显示各进程的%CPU和%MEM等关键指标;ps用于获取某一时刻的进程快照,常用ps aux或结合grep查找特定进程,如ps aux | grep nginx;htop是top的增强版,界面更友好,支持鼠标操作和树状视图,便于直观分析。对于特定进程,可通过ps -p PID -o %cpu,%mem,cmd精确查询其资源占用,或使用pidstat进行细粒度采样分析。内存方面需重点理解VIRT(虚拟内存总量)、RES(实际物理内存占用)和SHR(共享内存大小),其中RES是判断内存压力的核心指标,VIRT反映地址空间大小,SHR表示共享部分,避免误判内存消耗。

在Linux系统上,要查看进程的CPU和内存占用,最直接有效的方法就是使用
top
htop
ps
要详细了解Linux进程的CPU和内存占用,我们通常会用到以下几个工具,它们各有侧重:
1. top
top
top
运行后,你会看到一个交互式的界面,其中包含了许多重要的信息列:
在
top
P
M
k
q
top
2. ps
ps
top
查看所有进程的详细信息:
ps aux
或者使用更详细的格式:
ps -ef
ps aux
%CPU
%MEM
grep
ps aux | grep nginx
这将列出所有包含"nginx"关键字的进程及其资源占用。
3. htop
htop
top
sudo apt install htop
sudo yum install htop
htop
htop
F6
F9

当系统出现卡顿或者某个服务响应变慢时,我最先想到的就是实时监控工具。
top
htop
top
top
P
M
%MEM
VIRT
RES
SHR
top
k
而
htop
top
htop
F5
htop
除了这两个,偶尔我也会用
watch -n 1 'ps aux --sort=-%cpu | head -n 10'
top
htop

很多时候,我们并不想看整个系统的资源情况,而是想聚焦到某个特定的应用或服务上,比如一个数据库进程、一个Web服务器或者我正在开发的某个程序。这时候,
ps
最常用的方法是结合
grep
ps aux | grep my_application
这会列出所有名称中包含
my_application
grep
grep -v grep
ps aux | grep my_application | grep -v grep
这样就能得到干净的进程列表,其中包含
PID
%CPU
%MEM
如果我已经知道进程的PID,那么可以直接用
ps -p <PID> -o %cpu,%mem,cmd
ps -p 12345 -o %cpu,%mem,cmd
这种方式非常精确,尤其是在脚本中处理时。
对于更高级的场景,例如需要查看进程在一段时间内的资源变化趋势,
pidstat
sysstat
# 每秒采样一次,共采样5次,查看PID为12345的进程CPU使用情况 pidstat -u -p 12345 1 5 # 查看PID为12345的进程内存使用情况 pidstat -r -p 12345 1 5
pidstat
pidstat

这三个内存指标,初看起来容易混淆,但理解它们之间的区别对于准确评估进程的内存需求至关重要。我见过太多人因为只看
VIRT
VIRT (Virtual Memory Size):
VIRT
VIRT
VIRT
RES (Resident Set Size):
RES
RES
RES
SHR (Shared Memory Size):
SHR
SHR
简单来说,
RES
VIRT
RES
SHR
VIRT
RES
RES
SHR
以上就是Linux如何查看进程的CPU和内存占用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号