top
是 Linux 系统中一个非常强大的实时监控系统性能的命令行工具。它提供了关于系统正在运行的进程以及系统总体状态的实时动态视图。使用 top
,你可以看到关于 CPU 使用率、内存使用情况、进程信息、运行时间、登录用户等关键数据。
如何使用 top
-
打开终端:首先,打开你的 Linux 终端(Terminal)。
-
运行
top
:在终端中输入top
并按回车。这将启动top
命令,显示系统当前的实时状态。
top
界面的主要部分
- 顶部区域:显示系统的整体信息,包括当前时间、系统运行时间、登录用户数、平均负载等。
- 任务(Tasks)和 CPU 状态:显示当前正在运行的进程数、休眠中的进程数、停止的进程数以及僵尸进程数,还有 CPU 的使用情况(用户模式、系统模式、空闲等)。
- 内存和交换空间:展示物理内存和交换空间的使用情况。
- 进程列表:列出当前系统上所有进程的详细信息,通常包括 PID(进程ID)、用户、优先级、虚拟内存使用量、物理内存使用量、共享内存大小、状态(如运行、睡眠等)、CPU 使用率、内存使用率、运行的时间以及命令行。
常用 top
命令选项
-u 用户名
:只显示指定用户的进程。-n 次数
:指定top
命令更新屏幕的次数,之后自动退出。-d 秒数
:设置top
命令更新的时间间隔(以秒为单位)。-b
:以批处理模式运行top
,适用于将输出重定向到文件或管道。-i
:忽略闲置和僵尸进程。-H
:以线程模式运行,显示所有线程。
常用 top
示例
[root@server-UAT ~]# top
top - 08:40:45 up 31 days, 13:05, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 370 total, 1 running, 369 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.4 us, 0.7 sy, 0.0 ni, 98.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16264684 total, 174156 free, 1130488 used, 14960040 buff/cache
KiB Swap: 8257532 total, 7725564 free, 531968 used. 5536484 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23266 root 20 0 162400 2428 1540 R 6.2 0.0 0:00.02 top
1 root 20 0 191264 3080 1676 S 0.0 0.0 13:09.64 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.56 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 0:01.23 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.53 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 7:49.02 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:15.23 watchdog/0
12 root rt 0 0 0 0 S 0.0 0.0 0:13.60 watchdog/1
13 root rt 0 0 0 0 S 0.0 0.0 0:00.90 migration/1
14 root 20 0 0 0 0 S 0.0 0.0 0:02.61 ksoftirqd/1
显示指定用户oracle的进程
[root@server-UAT ~]# top -u oracle
top - 08:29:43 up 31 days, 12:54, 1 user, load average: 0.04, 0.03, 0.05
Tasks: 369 total, 1 running, 368 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16264684 total, 171280 free, 1128428 used, 14964976 buff/cache
KiB Swap: 8257532 total, 7725564 free, 531968 used. 5538556 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2268 oracle 20 0 9.9g 269876 265896 S 0.3 1.7 10:23.32 oracle
2105 oracle 20 0 242712 3360 2552 S 0.0 0.0 2:38.54 tnslsnr
2237 oracle 20 0 9.9g 16608 16300 S 0.0 0.1 6:50.13 oracle
2239 oracle 20 0 9.9g 10340 10148 S 0.0 0.1 9:05.71 oracle
2241 oracle 20 0 9.9g 9748 9640 S 0.0 0.1 14:57.23 oracle
2246 oracle 20 0 9.9g 10052 9860 S 0.0 0.1 1:28.28 oracle
2248 oracle 20 0 9.9g 9724 9596 S 0.0 0.1 2:57.22 oracle
2250 oracle 20 0 9.9g 46616 45456 S 0.0 0.3 3:02.96 oracle
2252 oracle 20 0 9.9g 21956 19956 S 0.0 0.1 59:32.35 oracle
2254 oracle 20 0 9.9g 1.0g 1.0g S 0.0 6.5 1:35.55 oracle
2256 oracle 20 0 9.9g 2.7g 2.7g S 0.0 17.2 4:34.20 oracle
2258 oracle 20 0 9.9g 2.9g 2.9g S 0.0 18.5 4:33.15 oracle
2260 oracle 20 0 9.9g 30660 30088 S 0.0 0.2 3:21.56 oracle
2262 oracle 20 0 9.9g 282116 281648 S 0.0 1.7 11:44.49 oracle
显示指定用户oracle的进程且更新的时间间隔3秒
[root@server-UAT ~]# top -u oracle -d 3
top - 08:30:28 up 31 days, 12:55, 1 user, load average: 0.08, 0.04, 0.05
Tasks: 369 total, 1 running, 368 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16264684 total, 178468 free, 1148128 used, 14938088 buff/cache
KiB Swap: 8257532 total, 7725564 free, 531968 used. 5518860 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2252 oracle 20 0 9.9g 21956 19956 S 0.3 0.1 59:32.41 oracle
2268 oracle 20 0 9.9g 269876 265896 S 0.3 1.7 10:23.33 oracle
2105 oracle 20 0 242712 3360 2552 S 0.0 0.0 2:38.55 tnslsnr
2237 oracle 20 0 9.9g 16608 16300 S 0.0 0.1 6:50.13 oracle
2239 oracle 20 0 9.9g 10340 10148 S 0.0 0.1 9:05.72 oracle
2241 oracle 20 0 9.9g 9748 9640 S 0.0 0.1 14:57.24 oracle
2246 oracle 20 0 9.9g 10052 9860 S 0.0 0.1 1:28.28 oracle
2248 oracle 20 0 9.9g 9724 9596 S 0.0 0.1 2:57.22 oracle
2250 oracle 20 0 9.9g 46616 45456 S 0.0 0.3 3:02.96 oracle
2254 oracle 20 0 9.9g 1.0g 1.0g S 0.0 6.5 1:35.55 oracle
2256 oracle 20 0 9.9g 2.7g 2.7g S 0.0 17.2 4:34.21 oracle
2258 oracle 20 0 9.9g 2.9g 2.9g S 0.0 18.5 4:33.16 oracle
交互模式
在 top
运行期间,你可以按以下键进入交互模式,进行各种操作:
- P:按 CPU 使用率对进程进行排序。
- M:按内存使用量对进程进行排序。
- T:按时间/累积时间对进程进行排序。
- k:杀死一个进程(需要先输入进程ID)。
- q:退出
top
。 - h:显示帮助屏幕。
top
是 Linux 系统管理员和高级用户监控系统性能的重要工具之一。通过熟悉它的使用,你可以更好地理解你的系统是如何工作的,以及在需要时采取适当的措施来优化性能。