文章目录
- [top 命令概述](#top 命令概述)
- [如何使用 top 命令](#如何使用 top 命令)
- [top 命令输出解释](#top 命令输出解释)
- 各部分解释
- [top 命令的常用交互操作](#top 命令的常用交互操作)
- [top 命令的常用选项](#top 命令的常用选项)
- 查看每个CPU使用情况
- htop和top之间比较
- 小结
top 命令概述
top 命令是 Unix 和 Linux 系统中一个强大的监控工具 ,可以显示系统中运行的所有进程及其相关的实时信息 。它的输出会动态更新,通常每隔几秒刷新一次。
如何使用 top 命令
在终端中输入 top 并按下回车键即可启动 top 命令:
powershell
top
top 命令输出解释
当你运行 top 命令时,会看到以下输出:
powershell
top - 12:34:56 up 1 day, 3:23, 2 users, load average: 0.01, 0.05, 0.09
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.0 us, 0.5 sy, 0.0 ni, 98.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7988.2 total, 1234.5 free, 2345.6 used, 4408.1 buff/cache
MiB Swap: 2048.0 total, 2000.0 free, 48.0 used. 5123.6 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 user 20 0 195948 25284 4656 S 0.3 1.2 0:23.45 python3
5678 user 20 0 101832 8464 1536 S 0.1 0.1 0:00.56 sshd
9101 user 20 0 62912 3784 1200 R 0.0 0.1 0:00.01 top
...
各部分解释
系统信息
powershell
top - 12:34:56 up 1 day, 3:23, 2 users, load average: 0.01, 0.05, 0.09
12:34:56
:当前时间。up 1 day, 3:23
:系统运行时间(已运行 1 天 3 小时 23 分钟)。2 users
:当前登录的用户数。load average
:系统的负载均衡(1 分钟、5 分钟和 15 分钟的平均负载)。
任务信息
powershell
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
123 total
:总任务数。1 running
:运行中的任务数。122 sleeping
:休眠中的任务数。0 stopped
:停止的任务数。0 zombie
:僵尸任务数。
CPU 使用信息
powershell
%Cpu(s): 1.0 us, 0.5 sy, 0.0 ni, 98.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
- 1.0 us:用户空间占用的 CPU 百分比。
- 0.5 sy:内核空间占用的 CPU 百分比。
- 0.0 ni:改变过优先级的进程占用的 CPU 百分比。
- 98.0 id:空闲 CPU 百分比。
- 0.5 wa:等待 I/O 操作的 CPU 百分比。
- 0.0 hi:硬件中断占用的 CPU 百分比。
- 0.0 si:软件中断占用的 CPU 百分比。
- 0.0 st:被偷取的 CPU 百分比(虚拟化环境中)。
内存使用信息
powershell
MiB Mem : 7988.2 total, 1234.5 free, 2345.6 used, 4408.1 buff/cache
MiB Swap: 2048.0 total, 2000.0 free, 48.0 used. 5123.6 avail Mem
- 7988.2 total:总内存(MiB)。
- 1234.5 free:空闲内存(MiB)。
- 2345.6 used:已用内存(MiB)。
- 4408.1 buff/cache:缓存内存(MiB)。
- 2048.0 total:总交换区(Swap,MiB)。
- 2000.0 free:空闲交换区(MiB)。
- 48.0 used:已用交换区(MiB)。
- 5123.6 avail Mem:可用内存(MiB)。
进程信息
powershell
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 user 20 0 195948 25284 4656 S 0.3 1.2 0:23.45 python3
5678 user 20 0 101832 8464 1536 S 0.1 0.1 0:00.56 sshd
9101 user 20 0 62912 3784 1200 R 0.0 0.1 0:00.01 top
- PID:进程 ID。
- USER:进程所有者。
- PR:优先级。
- NI:nice 值(影响优先级)。
- VIRT:虚拟内存使用量(KiB)。
- RES:常驻内存使用量(KiB)。
- SHR:共享内存使用量(KiB)。
- S:进程状态(D=不可中断的休眠状态,R=运行,S=休眠,T=跟踪/停止,Z=僵尸进程)。
- %CPU:进程使用的 CPU 百分比。
- %MEM:进程使用的内存百分比。
- TIME+:进程启动以来的累计 CPU 时间。
- COMMAND:启动进程的命令。
top 命令的常用交互操作
在运行 top 时,你可以使用以下键盘快捷键进行交互操作:
- h:显示帮助。
- q:退出 top。
- z:切换颜色显示模式。
- x:高亮显示排序列。
- b:切换粗体显示。
- M:按内存使用排序。
- P:按 CPU 使用排序。
- T:按累计时间排序。
- k:终止一个进程(需要输入 PID)。
- r:重新调整一个进程的优先级(需要输入 PID)。
top 命令的常用选项
你也可以在命令行中使用各种选项来启动 top 命令:
- -b:以批处理模式运行,适合将输出重定向到文件或其他命令。
- -n:指定更新的次数,通常与 -b 选项结合使用。
- -d:指定刷新间隔时间(秒)。
例如,将 top 输出重定向到文件中:
powershell
top -b -n 1 > top_output.txt
查看每个CPU使用情况
在 top 命令运行过程中,按下数字键 1 会显示或隐藏每个 CPU 核心的使用情况。默认情况下,top 命令显示所有 CPU 核心的整体使用情况。如果按下 1 键,top 将切换为显示每个独立 CPU 核心的使用情况。
示例说明
默认视图
运行 top 命令后,你通常会看到如下所示的输出,这里显示的是所有 CPU 核心的综合使用情况:
powershell
top - 12:34:56 up 1 day, 3:23, 2 users, load average: 0.01, 0.05, 0.09
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.0 us, 0.5 sy, 0.0 ni, 98.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7988.2 total, 1234.5 free, 2345.6 used, 4408.1 buff/cache
MiB Swap: 2048.0 total, 2000.0 free, 48.0 used. 5123.6 avail Mem
按下 1 键后的视图
按下 1 键后,top 命令会显示每个独立 CPU 核心的使用情况,如下所示:
powershell
top - 12:34:56 up 1 day, 3:23, 2 users, load average: 0.01, 0.05, 0.09
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.5 us, 0.3 sy, 0.0 ni, 99.0 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 1.0 us, 0.5 sy, 0.0 ni, 98.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.8 us, 0.4 sy, 0.0 ni, 98.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 1.2 us, 0.6 sy, 0.0 ni, 98.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7988.2 total, 1234.5 free, 2345.6 used, 4408.1 buff/cache
MiB Swap: 2048.0 total, 2000.0 free, 48.0 used. 5123.6 avail Mem
在这个视图中,每个 CPU 核心的使用情况都单独列出,使得你可以更详细地查看每个核心的负载情况。
如何使用
启动 top 命令:在终端中输入 top 并按下回车键。
按下 1 键:在 top 命令运行过程中,按下数字键 1,即可切换到显示每个独立 CPU 核心的使用情况。
再次按下 1 键:如果想恢复到默认视图,再次按下 1 键即可。
htop和top之间比较
htop 和 top 都是用于监控系统进程和资源使用情况的工具,但 htop 提供了更丰富的功能和更友好的用户界面。以下是 htop 和 top 的主要区别:
用户界面和可用性
top
- 界面:top 使用简单的文本界面,默认情况下显示系统资源使用情况和进程列表。
- 交互性:top 提供了一些基本的交互功能,如排序、终止进程和调整进程优先级等,但需要记住特定的键盘快捷键。
- 信息显示:默认显示的列有限,需要手动配置才能显示更多信息。
htop
- 界面:htop 提供了更友好的用户界面,使用颜色和图形化条形图来表示 CPU、内存和交换空间的使用情况。
- 交互性:htop 提供更丰富的交互功能,用户可以通过箭头键轻松导航和选择进程,支持鼠标操作。
- 信息显示:默认显示更多有用的信息,用户可以方便地自定义显示列。
功能和特性
top
- 功能:top 提供了基本的进程监控和管理功能,如排序、过滤和终止进程。
- 配置:可以通过命令行选项和交互式命令进行一些基本的配置,但不如 htop 直观。
htop
- 功能:htop 提供了更多的高级功能,如:
- 垂直和水平滚动:可以查看所有进程和完整的命令行参数。
- 按树状结构显示进程:方便查看进程的父子关系。
- 搜索功能:可以快速查找特定进程。
- 高度可定制的界面:用户可以选择显示哪些列,以及列的顺序。
- 快速终止或调整多个进程:使用快捷键或鼠标操作更为便捷。
- 配置:支持用户配置文件,保存用户的偏好设置,启动时自动应用。
安装
top:通常预装在大多数 Unix/Linux 系统中。
htop:需要手动安装,可以通过包管理器进行安装,如:
powershell
sudo apt-get install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
sudo dnf install htop # Fedora
brew install htop # macOS (Homebrew)
示例比较
top 示例界面
powershell
top - 12:34:56 up 1 day, 3:23, 2 users, load average: 0.01, 0.05, 0.09
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.0 us, 0.5 sy, 0.0 ni, 98.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7988.2 total, 1234.5 free, 2345.6 used, 4408.1 buff/cache
MiB Swap: 2048.0 total, 2000.0 free, 48.0 used. 5123.6 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 user 20 0 195948 25284 4656 S 0.3 1.2 0:23.45 python3
5678 user 20 0 101832 8464 1536 S 0.1 0.1 0:00.56 sshd
9101 user 20 0 62912 3784 1200 R 0.0 0.1 0:00.01 top
htop 示例界面
powershell
1 [|| 1.0%] Tasks: 123, 1 running
2 [||| 2.0%] Load average: 0.01 0.05 0.09
3 [|| 1.5%] Uptime: 1 day, 3:23
4 [| 0.5%]
Mem[ 2345/7988MB] [|||||||||||||||||||||||||23.4%]
Swp[ 48/2048MB] [| 2.3%]
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
1234 user 20 0 195948 25284 4656 S 0.3 1.2 0:23.45 python3
5678 user 20 0 101832 8464 1536 S 0.1 0.1 0:00.56 sshd
9101 user 20 0 62912 3784 1200 R 0.0 0.1 0:00.01 htop
总结
- 用户界面:htop 提供更直观和用户友好的界面,支持鼠标操作和颜色显示。
- 功能性:htop 提供更多高级功能和更强的交互性,适合需要频繁监控和管理进程的用户。
- 安装和配置:top 通常预装在系统中,htop 需要手动安装,但配置更灵活。
通过以上比较,你可以更好地理解 top 和 htop 的区别,并根据需要选择合适的工具进行系统监控和管理。
小结
top 命令是一个非常强大的工具,可以帮助系统管理员和开发人员监控系统性能、发现问题并进行优化。在你的博客中,可以通过示例和解释,帮助读者更好地理解和使用 top 命令。