一.命令概述
top命令可以用来显示Linux中所有任务及系统负载/性能等相关信息。通常可以使用top命令用来协助进行问题的分析和诊断。
top - 08:58:26 up 35 min, 3 users, load average: 0.16, 0.06, 0.04
当前时间 启动到现在的时长, 目前有多少个用户在线, 1,5,15分钟内的平均负载(运行队列/CPU个数)
Tasks: 163 total, 1 running, 162 sleeping, 0 stopped, 0 zombie
任务: 当前任务总数, 正在运行的个数, 休眠的个数, 停止的个数, 僵死个数
Cpu(s): 2.0%us, 0.7%sy, 0.0%ni, 96.9%id, 0.0%wa, 0.3%hi, 0.0%si, 0.0%st
CPU使用情况: 用户使用, 系统使用, 调整优先级使用, 空闲, 等待, 硬中断, 软中断, 虚拟机占用(steal)
Mem: 2055040k total, 1026444k used, 1028596k free, 29472k buffers
内存使用:总大小, 已使用, 空闲内存, buffer占用(存放inode等源数据)
Swap: 5242872k total, 0k used, 5242872k free, 666916k cached
Swap使用: 总共, 已使用, 空闲, 内存中cache大小
--以下部分为进程相关信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2413 oracle -2 0 637m 16m 14m S 0.7 0.8 6:39.89 oracle
2370 oracle 20 0 105m 1900 1456 S 0.0 0.1 0:00.01 bash
2397 oracle 20 0 211m 13m 9m S 0.0 0.7 0:00.42 tnslsnr
2402 oracle 20 0 109m 1252 1000 S 0.0 0.1 0:00.00 rlwrap
2403 oracle 20 0 69964 12m 9436 S 0.0 0.6 0:00.01 sqlplus
2409 oracle 20 0 639m 25m 21m S 0.0 1.3 0:01.45 oracle
2411 oracle 20 0 637m 16m 14m S 0.0 0.8 0:03.91 oracle
2417 oracle 20 0 637m 17m 14m S 0.0 0.9 0:00.47 oracle
2419 oracle 20 0 637m 16m 14m S 0.0 0.8 0:00.59 oracle
2421 oracle 20 0 637m 27m 23m S 0.0 1.4 0:00.56 oracle
2423 oracle 20 0 638m 21m 17m S 0.0 1.1 0:02.81 oracle
2425 oracle 20 0 637m 119m 117m S 0.0 6.0 0:00.82 oracle
2427 oracle 20 0 644m 63m 52m S 0.0 3.2 0:01.05 oracle
2429 oracle 20 0 652m 24m 20m S 0.0 1.2 0:00.99 oracle
2431 oracle 20 0 638m 21m 19m S 0.0 1.1 0:01.23 oracle
进程信息中各个字段的含义:
PID = Process Id
USER = User Name
PR = Priority(和nice都是优先级,值越小优先级越高)
NI = Nice value
VIRT = 虚拟内存使用量 (kb)
RES = 物理内存使用量 (kb)
SHR = 共享内存使用量 (kb)
S = Process Status
’D’ = uninterruptible sleep’R’ = running’S’ = sleeping’T’ = traced or stopped’Z’ = zombie
%CPU = CPU usage(默认按照此字段排序)
%MEM = Memory usage (RES)
TIME+ = CPU Time, hundredths
COMMAND = Command name/line
--以下字段默认情况不显示,可以通过'f'调整是否显示
PPID = Parent Process Pid
RUSER = Real user name
UID = User Id
GROUP = Group Name
TTY = Controlling Tty
P = Last used cpu (SMP)
SWAP = Swapped size (kb)
TIME = CPU Time
CODE = Code size (kb)
DATA = Data+Stack size (kb)
nFLT = Page Fault count
nDRT = Dirty Pages count
WCHAN = Sleeping in Function
Flags = Task Flags <sched.h>
三.命令使用
我们可以结合相关常用参数来调用top命令达到信息收集的目的,语法如下:
top [option]
-b 以batch模式运行,每次输出都可以在屏幕上往上翻出来,结合-n可以实现信息收集或输出到指定文件;-n <num> 指定刷新次数,刷新num次后退出-d <num> 指定刷新周期-p <pid> 监控特定的pid-S 显示累计的CPU时间,不常用
四.交互模式
在top命令运行的过程中我们可以与之进行交互进行相关的设置和调整想要看到的内容:
Z:调整显示的配色方案
B:开启/关闭粗体(是否显示粗体的开关,关闭的时候x/y等都无效)
l:开启/关闭load部分的信息显示;
t:开启/关闭task/cpu部分的显示;
m:开启关闭mem部分的信息显示;
1:数字1控制CPU分开显示还是汇总显示;
f:添加或者减少需要显示的列
o:调整显示顺序;
F or O:选择排序字段
<,>:调整排序字段
R:调整排序方式,升序/降序;
c:控制CMD字段显示程序还是详细命令;
i:开启/关闭对空闲进程的显示;
S:累积CPU时间的显示方式;
x:高亮显示排序字段;
b:高亮显示排序字段的时候填充字段背景;
u:指定仅显示某个用户的进程;
k:杀死指定的进程,默认发送信号15(自杀)
r:调整优先级
d:调整更新间隔;
W:保存报告配置,下次运行时按照此格式显示