linux中top、htop监控工具命令详解

文章目录

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 命令。

相关推荐
虾..6 小时前
Linux 软硬链接和动静态库
linux·运维·服务器
Evan芙6 小时前
Linux常见的日志服务管理的常见日志服务
linux·运维·服务器
hkhkhkhkh1238 小时前
Linux设备节点基础知识
linux·服务器·驱动开发
HZero.chen9 小时前
Linux字符串处理
linux·string
张童瑶9 小时前
Linux SSH隧道代理转发及多层转发
linux·运维·ssh
汪汪队立大功1239 小时前
什么是SELinux
linux
石小千9 小时前
Linux安装OpenProject
linux·运维
柏木乃一9 小时前
进程(2)进程概念与基本操作
linux·服务器·开发语言·性能优化·shell·进程
Lime-30909 小时前
制作Ubuntu 24.04-GPU服务器测试系统盘
linux·运维·ubuntu
百年渔翁_肯肯10 小时前
Linux 与 Unix 的核心区别(清晰对比版)
linux·运维·unix