notes icon indicating copy to clipboard operation
notes copied to clipboard

linux top 查看指定程序的资源占用情况 or linux top to a specific process name

Open lanlin opened this issue 5 years ago • 1 comments

场景

经常需要查看系统资源占用情况,这个时候通常都会使用 top 命令。 然而,如何根据进程名称,批量查看特定程序的占用情况,而不是手动一个一个 pid 的粘贴呢?

指令

1. For Linux:

top -p `pgrep xxx | head -n 20 | paste -sd "," -`

2. For MacOS:

top -pid `pgrep xxx | awk 'ORS=" -pid "' | sed 's/.\{6\}$//'`

3. 说明

上述指令的 xxx 替换为你需要查看的进程名称,比如 php, java 等。 head -n 20 是在上一步的结果里只取头20个 pid,因为linux的 top -p 限制最多只能传20个 pid.

TOP 结果说明:

image

Name Description
PID 进程id
USER 进程所有者
PR 进程优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 进程名称(命令名/命令行)

lanlin avatar Apr 20 '20 08:04 lanlin

PS: 按 e 可以切换显示单位

lanlin avatar Apr 24 '20 04:04 lanlin