linux中top命令
2021-10-26 本文已影响0人
小KKKKKKKK
top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。
1.基本格式
top [选项]
1.1.选项:
-
-d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
top -d 1
-
-b:使用批处理模式输出;
-
-n 次数:指定 top 命令执行的次数;
-
-p 进程PID:仅查看指定 ID 的进程;
-
top -p 100014
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.6 us, 0.4 sy, 0.0 ni, 97.4 id, 0.0 wa, 0.0 hi, 0.3 si, 0.3 st KiB Mem : 10311539+total, 3695440 free, 44453456 used, 54966500 buff/cache KiB Swap: 16515068 total, 16443132 free, 71936 used. 53417388 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 100014 hbase 20 0 11.6g 3.5g 32924 S 4.0 3.6 2388:04 java
-
-s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
-
-u 用户名:只监听某个用户的进程;
top -u root
Tasks: 484 total, 2 running, 482 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.8 us, 0.3 sy, 0.0 ni, 97.4 id, 0.1 wa, 0.0 hi, 0.2 si, 0.2 st KiB Mem : 10311539+total, 3666800 free, 44474096 used, 54974500 buff/cache KiB Swap: 16515068 total, 16443132 free, 71936 used. 53396784 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 112336 root 20 0 24.1g 1.2g 23680 S 39.1 1.2 2460:22 java 76750 root 20 0 909172 120936 1384 R 11.9 0.1 16396:43 redis-server 39603 root 20 0 24.1g 1.3g 23520 S 2.6 1.3 3934:39 java 2722 root 20 0 1259468 99924 3676 S 1.3 0.1 1628:33 python2 82011 root 20 0 162388 2656 1596 R 1.0 0.0 0:00.05 top 87151 root 20 0 21.4g 752636 10764 S 1.0 0.7 1288:04 java 9 root 20 0 0 0 0 S 0.3 0.0 370:21.14 rcu_sched 154 root 20 0 0 0 0 S 0.3 0.0 7:25.75 ksoftirqd/29 192 root rt 0 0 0 0 S 0.3 0.0 0:31.41 watchdog/37 1998 root 20 0 3555524 98524 4112 S 0.3 0.1 5978:36 cmagent 18688 root 20 0 18.5g 1.6g 33872 S 0.3 1.7 0:58.82 java 32639 root 20 0 0 0 0 S 0.3 0.0 0:02.13 kworker/4:2 1 root 20 0 191692 4264 2272 S 0.0 0.0 46:38.80 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:01.71 kthreadd 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 20 0 0 0 0 S 0.0 0.0 1:10.04 ksoftirqd/0 7 root rt 0 0 0 0 S 0.0 0.0 0:07.86 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
1.2.在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作:
- ? 或 h:显示交互模式的帮助;
- P:按照 CPU 的使用率排序;(默认就是此选项)
- M:按照内存的使用率排序;
- N:按照 PID 排序;
- T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
- k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;
- r:按照 PID 给某个进程重设优先级(Nice)值;
- q:退出 top 命令;
2.执行结果说明
top - 13:48:46 up 138 days, 10 min, 1 user, load average: 1.10, 1.24, 1.40
Tasks: 476 total, 1 running, 475 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.5 us, 0.4 sy, 0.0 ni, 97.3 id, 0.3 wa, 0.0 hi, 0.4 si, 0.2 st
KiB Mem : 10311539+total, 4367416 free, 41825448 used, 56922532 buff/cache
KiB Swap: 16515068 total, 16122876 free, 392192 used. 56021140 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
102168 hive 20 0 2268464 416160 30856 S 35.9 0.4 17395:01 java
76750 root 20 0 909172 124276 1380 S 18.3 0.1 17513:19 redis-ser+
74059 clouder+ 20 0 31.0g 9.6g 1.4g S 6.0 9.8 22514:13 java
100014 hbase 20 0 11.6g 3.7g 32972 S 4.3 3.8 2805:18 java
39603 root 20 0 24.1g 1.3g 23512 S 3.3 1.3 4277:59 java
42796 clouder+ 20 0 24.4g 3.2g 28468 S 3.0 3.3 6352:52 java
112336 root 20 0 24.1g 1.4g 23656 S 2.3 1.4 2762:33 java
98805 hdfs 20 0 6315288 1.7g 27820 S 1.7 1.7 1239:00 java
87151 root 20 0 21.4g 782772 10764 S 1.3 0.8 1381:33 java
74060 clouder+ 20 0 17.4g 4.4g 97300 S 1.0 4.5 1564:52 java
74061 clouder+ 20 0 13.5g 2.3g 27760 S 1.0 2.3 508:16.01 java
98257 zookeep+ 20 0 10.8g 1.6g 13312 S 1.0 1.6 239:42.86 java
100010 yarn 20 0 6431916 1.5g 27668 S 1.0 1.6 1176:43 java
2644 mysql 20 0 5945344 579796 7652 S 0.7 0.6 1808:43 mysqld
2722 root 20 0 1259468 100808 3676 S 0.7 0.1 1704:03 python2
100637 hbase 20 0 119604 5104 692 S 0.7 0.0 829:33.48 hbase.sh
9 root 20 0 0 0 0 S 0.3 0.0 389:42.76 rcu_sched
154 root 20 0 0 0 0 S 0.3 0.0 8:35.76 ksoftir
以上述返回结果为例;
第一行
top - 13:48:46 up 138 days, 10 min, 1 user, load average: 1.10, 1.24, 1.40
内容 | 说明 |
---|---|
13:48:46 | 系统时间 |
up 138 days, 10 min | 系统已运行时间,为138天10分钟 |
1 user | 系统已登陆一个用户 |
load average: 1.10, 1.24, 1.40 | 系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 |
第二行
Tasks: 476 total, 1 running, 475 sleeping, 0 stopped, 0 zombie
内容 | 说明 |
---|---|
Tasks: 476 total | 系统中的进程总数 |
1 running | 正在运行的进程数 |
475 sleeping | 睡眠的进程数 |
0 stopped | 正在停止的进程数 |
0 zombie | 僵尸进程数 |
第三行
%Cpu(s): 1.5 us, 0.4 sy, 0.0 ni, 97.3 id, 0.3 wa, 0.0 hi, 0.4 si, 0.2 st
内容 | 说明 |
---|---|
%Cpu(s): 1.5 us | 用户模式占用的 CPU 百分比 |
0.4 sy | 系统模式占用的 CPU 百分比 |
0.0 ni | 改变过优先级的用户进程占用的 CPU 百分比 |
97.3 id | 空闲 CPU 占用的 CPU 百分比 |
0.3 wa | 等待输入/输出的进程占用的 CPU 百分比 |
0.0 hi | 硬中断请求服务占用的 CPU 百分比 |
0.4 si | 软中断请求服务占用的 CPU 百分比 |
0.2 st | st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比 |
第四行
KiB Mem : 10311539+total, 4367416 free, 41825448 used, 56922532 buff/cache
内容 | 说明 |
---|---|
10311539+total | 物理内存的总量,单位为KB |
4367416 free | 己经使用的物理内存数量 |
41825448 used | 空闲的物理内存数量 |
56922532 buff/cache | 作为缓冲的内存数量 |
第五行
KiB Swap: 16515068 total, 16122876 free, 392192 used. 56021140 avail Mem
内容 | 说明 |
---|---|
16515068 total | 交换分区(虚拟内存)的总大小 |
16122876 free | 已经使用的交换分区的大小 |
392192 used | 空闲交换分区的大小 |
56021140 avail Mem | 作为缓存的交换分区的大小 |
以上为系统整体信息的说明,接下来为相信进程的说明
其他
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
112336 root 20 0 24.1g 1.2g 23680 S 39.1 1.2 2460:22 java
76750 root 20 0 909172 120936 1384 R 11.9 0.1 16396:43 redis-server
39603 root 20 0 24.1g 1.3g 23520 S 2.6 1.3 3934:39 java
2722 root 20 0 1259468 99924 3676 S 1.3 0.1 1628:33 python2
82011 root 20 0 162388 2656 1596 R 1.0 0.0 0:00.05 top
87151 root 20 0 21.4g 752636 10764 S 1.0 0.7 1288:04 java
9 root 20 0 0 0 0 S 0.3 0.0 370:21.14 rcu_sched
154 root 20 0 0 0 0 S 0.3 0.0 7:25.75 ksoftirqd/29
192 root rt 0 0 0 0 S 0.3 0.0 0:31.41 watchdog/37
1998 root 20 0 3555524 98524 4112 S 0.3 0.1 5978:36 cmagent
18688 root 20 0 18.5g 1.6g 33872 S 0.3 1.7 0:58.82 java
32639 root 20 0 0 0 0 S 0.3 0.0 0:02.13 kworker/4:2
1 root 20 0 191692 4264 2272 S 0.0 0.0 46:38.80 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:01.71 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 1:10.04 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:07.86 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
内容 | 说明 |
---|---|
PID | 进程的 ID |
USER | 该进程所属的用户 |
PR | 优先级,数值越小优先级越高 |
NI | 优先级,数值越小、优先级越高 |
VIRT | 该进程使用的虚拟内存的大小,单位为 KB |
RES | 该进程使用的物理内存的大小,单位为 KB |
SHR | 共享内存大小,单位为 KB |
S | 进程状态 |
%CPU | 该进程占用 CPU 的百分比 |
%MEM | 该进程占用内存的百分比 |
TIME+ | 该进程共占用的 CPU 时间 |
COMMAND | 进程的命令名 |