admin 管理员组

文章数量: 1184232


2024年3月13日发(作者:mysql between)

top命令详解

1.常见操作

2.常见命令

3.参数解析

使用率过高排查思路:

top命令详解

1.常见操作

1. 输入top+回车键之后按1,也可以看到有各个cpu运行情况

2. 输入top+回车键之后按shift+M,按内存使用大小降序显示

3. 输入top+回车键之后按shift+p,按cpu使用大小降序显示

4. 输入top+回车键之后按shift+n,以pid降序排序显示

5. 输入top+回车键之后按shift+t,由进程使用的时间累计排序显示

6. 输入top+回车键之后按h:显示帮助信息

7. 输入top+回车键之后按e或E,可以切换每个任务或汇总占用内存的大小的单位, 从 KB、MB、GB、TB、PB 到

EB 循环切换.

8. 输入top+回车键之后,按n,输入0表示无限制,输入n表示显示n条

9. 输入top+回车键之后,按u,输入!前缀,输入username取反过滤用户

10. 输入top+回车键之后,输入r回车,输入pid回车,输入优先级-20(区间-20,19,数字越小代表优先级程度越

高)

2.常见命令

命令

top -d 5 -n 10

top -u root

top -p 1102

top -o %MEM

top -c

top -b -n 2

pidof 进程名称

top -p `pidof

xxx`

描述

显示每 5 秒刷新一次且仅刷新 10次

指定用户 root

指定进程 PID

以内存使用率排序

完整命令,与top命令不同的就是command显示的属性更全,例如java运行的是哪个

jar

批量打印2次全部进程

获取进程ID

指定名称的进程,进程只能有一个进程pid

3.参数解析

top - 16:19:54 up 1 day, 4:24, 1 user, load average: 0.00, 0.01, 0.05

top - 系统时间 up 运行时间, 用户数量, 系统最近5、10和15分钟内的平均负载

Tasks: 122 total, 1 running, 121 sleeping, 0 stopped, 0 zombie

系统总共122进程 1个运行进程 121 休眠进程 0个stop进程 0个僵尸进程

%Cpu(s): 5.0 us, 15.0 sy, 0.0 ni, 75.0 id, 0.0 wa, 0.0 hi, 5.0 si, 0.0 st

us, 用户空间的CPU百分比 sy,内核空间占用的CPU百分比;ni,用户进程内改变过优先级的进程占用CPU百分比 id,

空闲CPU的百分比 wa,IO wait: 等待输入输出的CPU时间百分比 hi:处理硬件中断的CPU时间 si: 处理软件中断的

CPU时间 st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上

hypervisor也是要消耗一部分CPU处理时间的)。

KiB Mem : 995896 total, 554812 free, 143384 used, 297700 buff/cache

total — 物理内存总量 free — 空闲的内存总量 使用中的内存总量 block buffer + page cache 所占用的内存

大小

KiB Swap: 2097148 total, 2097148 free, 0 used. 664544 avail Mem

total - 交换分区的总量 free - 空闲的交换分区的总量 used - 已使用的交换分区大小 avail Mem: 这个值是系

统的估算值,表示可用于启动新程序的物理内存大小(不包括 swap 空间)

平均负载并不是代表CPU的使用率。简单来说,平均负载是指单位时间内,系统处于可运行状态和不可中断

状态的平均进程数,也就是平均活跃进程数。

所谓可运行状态和不可中断状态是指: - 可运行状态(R):正在CPU上运行或者正在等待CPU的进程状态,如

上; - 不可中断状态(D):不可中断是指一些正在处于内核关键流程的进程,如果盲目打断,会造成不可预知

的后果,比如正在写磁盘的进程,盲目被打断,可能会造成读写不一致的问题,因此这里再次强调load

average和CPU使用率并没有直接关系,其值可以大于100。

比如,此时1分钟的平均负载为5.6,而我们的操作系统是4个CPU,那么就代表此时系统负载过高,意味着有

160%的的超载进程竞争不到CPU;若负载为2.0,则意味着有50%的CPU空闲。1分钟的系统负荷只是暂时现

象,问题不大。应该主要观察"15分钟系统负荷",将它作为服务器正常运行的指标。

buff/cache的内容,在Linux 2.4以前,page cache和buffer cache是两个独立的缓存,Linux 2.4开始page

cache和buffer cache进行了统一

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

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秒


本文标签: 进程 时间 输入 运行