linux top命令
top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视。
top - 06:25:40 up 2:04, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 217 total, 1 running, 216 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.9 us, 3.4 sy, 0.0 ni,90.4 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
MiB Mem : 2800.0 total, 1821.2 free, 457.3 used, 521.6 buff/cache
MiB Swap: 2139.0 total, 2139.0 free, 0.0 used. 2161.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 246124 14820 9240 S 0.0 0.5 0:03.79 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-xfs-log/nvme0n1p3
9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
10 root 20 0 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/0
11 root 20 0 0 0 0 I 0.0 0.0 0:03.58 rcu_sched
一、前五行是当前系统情况整体的统计信息。
第一行 :
top - 06:25:40 up 2:04, 1 user, load average: 0.00, 0.00, 0.00
06:25:40--系统时间 up 2:04--系统已经运行了2小时4分钟 1 user-- 当前有1个用户登陆系统
load average :0.00 0.00 0.00 三个数分别是1分钟、5分钟、15分钟的负载情况。 数字含义可参考Linux系统平均负载3个数字的含义 - Slyar Home
第二行:
Tasks: 217 total, 1 running, 216 sleeping, 0 stopped, 0 zombie
任务进程状态 运行中的1个、216个在休眠、stoped状态的有0个,zombie状态(僵尸)的有0个。
第三行:
%Cpu(s): 5.9 us, 3.4 sy, 0.0 ni,90.4 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
5.9%us — 用户空间占用CPU的百分比。
3.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
90.4% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.2% si — 软中断(Software Interrupts)占用CPU的百分比
0.0% st — steal time Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor.是用来衡量被Hypervisor偷去给其它虚拟机使用的CPU时间所占的比例,这个值越高,说明这台物理服务器的资源竞争越激烈。 一般的参考标准-如果Steal Time 超过了10%并且持续了20分钟,那么虚拟机就可能性能下降了。
第四行:
MiB Mem : 2800.0 total, 1821.2 free, 457.3 used, 521.6 buff/cache
2800 total -- 内存总大小为2800M 1821.2 free --空闲的内存大小 457.3 userd -- 使用中的内存 521.6 buff/cache 缓存内存量
第五行:
MiB Swap: 2139.0 total, 2139.0 free, 0.0 used. 2161.7 avail Mem
2139.0 total --交换分区总量, 2139.0 free--交换分区空闲量, 0.0 used -- 交换分区使用量. 2161.7 avail Mem --交换分区可用量
二、进程信息
第七行以下:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 246124 14820 9240 S 0.0 0.5 0:03.79 systemd
各进程的状态监控
PID--进程ID USER--进程所有者 PR--进程优先级 NI--nice值(负值表示高优先级 正值表示低优先级)
VIRT--进程使用的虚拟内存总量,单位Kb(VIRT=SWAP+RES) RES--进程使用的真实内存 SHR--共享内存大小 S--进程状态 %CPU %MEM TIME+ COMMAND--进程使用CPU时间(1/100s)+进程名称
三、top命令使用
3.1 更改显示内容
top命令之后按 f 键编辑显示内容:
Fields Management for window 1:Def, whose current sort field is %CPU
Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!
* PID = Process Id DATA = Data+Stack (KiB)
* USER = Effective User Name nMaj = Major Page Faults
* PR = Priority nMin = Minor Page Faults
* NI = Nice Value nDRT = Dirty Pages Count
* VIRT = Virtual Image (KiB) WCHAN = Sleeping in Function
* RES = Resident Size (KiB) Flags = Task Flags <sched.h>
* SHR = Shared Memory (KiB) CGROUPS = Control Groups
* S = Process Status SUPGIDS = Supp Groups IDs
* %CPU = CPU Usage SUPGRPS = Supp Groups Names
* %MEM = Memory Usage (RES) TGID = Thread Group Id
* TIME+ = CPU Time, hundredths OOMa = OOMEM Adjustment
* COMMAND = Command Name/Line OOMs = OOMEM Score current
PPID = Parent Process pid ENVIRON = Environment vars
UID = Effective User Id vMj = Major Faults delta
RUID = Real User Id vMn = Minor Faults delta
RUSER = Real User Name USED = Res+Swap Size (KiB)
SUID = Saved User Id nsIPC = IPC namespace Inode
SUSER = Saved User Name nsMNT = MNT namespace Inode
GID = Group Id nsNET = NET namespace Inode
GROUP = Group Name nsPID = PID namespace Inode
PGRP = Process Group Id nsUSER = USER namespace Inode
TTY = Controlling Tty nsUTS = UTS namespace Inode
TPGID = Tty Process Grp Id LXC = LXC container name
SID = Session Id RSan = RES Anonymous (KiB)
nTH = Number of Threads RSfd = RES File-based (KiB)
P = Last Used Cpu (SMP) RSlk = RES Locked (KiB)
TIME = CPU Time RSsh = RES Shared (KiB)
SWAP = Swapped Size (KiB) CGNAME = Control Group name
CODE = Code Size (KiB) NU = Last Used NUMA node
根据上图可知:
①当前是按照%CPU这一列来排序的
②可以通过上、下键来选择
③按右键可以选择整个列,然后按上、下键来移动整个列的显示位置,前移或后移,按回车确定
④按空格键来显示或隐藏该列,带*的是显示,不带*的是不显示
⑤按s键可以将当前列设置为排序列
⑥按q键退出
3.2 top常用命令
格式:
top [option]
常用选项:
选项 功能
-d 指定每两次屏幕信息刷新之间的时间间隔,如希望每秒刷新一次,则使用:top -d 1
-p 通过指定PID来仅仅监控某个进程的状态
-S 指定累计模式
-s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险
-i 使top不显示任何闲置或者僵死的进程
3.3 top交互命令
top命令之后按数字"1"键,可监控每个逻辑CPU的情况。
top - 09:43:17 up 5:21, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 216 total, 1 running, 215 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 2800.0 total, 1817.6 free, 460.1 used, 522.3 buff/cache
MiB Swap: 2139.0 total, 2139.0 free, 0.0 used. 2158.6 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11 root 20 0 0 0 0 I 0.3 0.0 0:07.99 rcu_sched
1 root 20 0 246124 14820 9240 S 0.0 0.5 0:03.85 systemd
top命令之后按"u"键后,输入用户名,可以查看相应用户的进程
top - 20:41:11 up 2:47, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 210 total, 1 running, 209 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.1 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 2800.0 total, 1846.4 free, 432.3 used, 521.3 buff/cache
MiB Swap: 2139.0 total, 2139.0 free, 0.0 used. 2187.2 avail Mem
Which user (blank for all) root
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11 root 20 0 0 0 0 I 0.5 0.0 0:02.22 rcu_sched
1 root 20 0 180480 14800 9252 S 0.0 0.5 0:01.62 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-xfs-log/nvme0n1p3
9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/0
13 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1
16 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
17 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
18 root 20 0 0 0 0 S 0.0 0.0 0:00.27 ksoftirqd/1
20 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H-kblockd
21 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2
22 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/2
23 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/2
24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/2
按"E"键,切换内存显示大小单位 KB-->MB-->GB-->TB-->EB
按"N"键,按PID由高到低排列
按"m"键,显示内存信息
top - 20:47:32 up 2:53, 2 users, load average: 0.00, 0.01, 0.00
Tasks: 208 total, 1 running, 207 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 21.9/2800.0 [||||||||||||||||||||| ]
MiB Swap: 0.0/2139.0 [ ]
按"M"键,根据内存资源使用大小来进行排序
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探