蚊章汇 - top
type: channel
link: https://linuxcn.bwsl.wang/tag/top/
items: 如何在 Linux 中安装和使用 htop
items: 5 个 htop 替代：增强你的 Linux 系统监控体验
items: 如何在 Linux 中找出 CPU 占用高的进程
items: 如何在批处理模式下运行 top 命令
items: 监控 Linux 服务器活动的几个命令
items: 关于 top 工具的 6 个替代方案
items: Hegemon：使用 Rust 编写的模块化系统监视程序
items: 使用 top 命令了解 Fedora 的内存使用情况
items: 在 Linux 中使用 top 命令的建议
items: Gotop：另一个 TUI 图形活动监视器，使用 Go 编写

如何在 Linux 中安装和使用 htop
type: item
date: 2023-03-15T00:29:39+08:00
description: Windows 有其著名的任务管理器。Linux 有几个 GUI 和 命令行的系统监视器。每个 Linux 系统都都有几个这样的监视器。在命令行中，top 命令可能是用于快速检查系统资源使用情况的最佳命令。除了查看进程之外，使用 top 命令 可能会很麻烦。而这就是 htop 的优势所在。抛开双关语不谈，htop 是一个类似于 top 的实用程序，但具有更好的、用户友好的界面。在本指南中，我将向你展示如何在 Linux 中安装和使用 htop。在 Linux 中安装 htop 实用程序在大多数的 Linux 发行版中你不会找到预安装的 htop，但作为最流行的实用程序之一，你会在几乎每个 Linux 发行版的默认存储库中找到 htop。因此，如果你的机器是基于 Debian/Ubuntu 驱动的，则以下命令应该可以完成你的工作：sudo apt install htop 类似的，如果你使用的是 Fedora，则可以使用以下的命令：sudo dnf install htop 如果你想避免从源代码构建包，还有一个 Snap 包可用：sudo snap install htop 如果你使用的是其它的发行版或者想从源代码构建，你可以随时参考 htop 的 GitHub 页面以获得详细说明。完成安装后，你只需在终端中使用 htop 命令，它将反映系统中所有正在运行的进程：htop 在 htop 中，每个部分都使用颜色标识，所以让我们看看使用 htop 时每种颜色表示什么。htop 中不同的颜色和统计信息表示什么让我们从 CPU 使用率栏开始，因为它使用的颜色最缤纷多彩。CPU 使用率栏绿色：用户进程消耗的资源。蓝色：表示低优先级线程。红色：系统（内核）进程使用的 CPU 资源。水蓝色：表示虚拟化进程。内存使用率栏绿色：系统进程正在使用的内存。蓝色：缓冲页面使用的内存。橙色：分配给缓存页面的内存。统计数据1.86 是最后 1 分钟的平均负载。1.75 是最后 4 分钟的平均负载。1.47 是最后 15 分钟的平均负载。Tasks: 166 表示一共有 166 个正在运行的进程。1249 thr 表示这 166 个进程由 1249 个线程处理。1 running 表示在这 166 个进程中，只有一个进程处于运行中。The load average 表示一段时间内的平均系统负载。由于我的系统是 Hexa-Core，所以 6.0 以下的是没问题的。这个数字可能会超过，比如 6.1，所以即将要运行的进程必须等待正在进行的任务完成。Uptime 表示你登录后运行的时长。现在，让我们跳到实际的实现部分。如何在 Linux 中使用 htop由于 htop 主要用于检查系统资源，让我们看看如何根据资源消耗对进程进行排序。根据资源消耗对进程进行排序根据 CPU 和内存使用情况对进程进行排序最简单的方法是使用鼠标指针。将光标悬停在 CPU 或内存部分上，然后单击其中任何一个。在那里你会看到一个三角形的图标 △，你可以根据它从最高到最低的资源消耗对进程进行排序：但是，如果你正在处理远程服务器，你可能无法使用鼠标，在这种情况下，你可以使用键盘快捷键。按 F6，它将显示每个可用的选项来对正在进行的进程进行排序：你可以使用方向键选择一个首选的排序选项，然后按回车键，结果应该会如预期的那样反映出来。搜索特定进程如果你想查找一个特定的进程及其资源消耗，你可以按 F3，它会给你一个搜索提示，如下所示：例如，我搜索 htop，它用浅橙色高亮显示了进程。你可以按 F3 获得下一个结果。过滤正在运行的进程虽然搜索可能会让你获得预期的结果，但我发现使用关键字的过滤过程更加有效，因为它提供了一个过程列表。要过滤进程，你必须按 F4 并输入进程的名称。例如，我过滤了与 gnome-boxes 相关的进程：杀死进程一旦找到最耗资源和不必要的进程，你只需按 F9，它就会向你显示终止信号：我无法介绍所有的 15 个终止信号，我们有一个关于 不同终止信息 的单独指南，因此如果你想了解更多信息，可以参考该指南。但我会建议你首先使用 SIGTERM，因为它是终止进程的最有效和友好的方式。自定义 htop在这里，我的目标是添加日期和时间并将配色方案更改为单色。首先，按 F2，它会出现设置提示，允许用户更改 htop 的外观：首先，将鼠标悬停在各个 Colors 部分并按回车键，这将允许我们更改配色方案。从那里，选择 Monochromatic 选项并按回车键保存更改：现在，返回到设置选项，然后使用向左方向键探索可用的指标：因为我打算添加日期和时间，所以我必须在找到它的选项后按回车键。在这里，它允许你将日期和时间放置在左右两列中，你可以使用向上和向下的方向键更改列的顺序。所以我将日期和时间指标放在最…

5 个 htop 替代：增强你的 Linux 系统监控体验
type: item
date: 2022-11-27T19:37:00+08:00
description: htop 是一个流行的命令行工具，可以帮助监测 Linux 上的系统资源和性能。它比通常默认开箱即用的 top 好。使用 htop，你可以对进程进行过滤和排序，以便更好地了解情况，获得正在运行的进程的树状视图，并在需要时杀死进程。我使用 htop 而不是其他系统监控工具，因为它可以显示对我来说至关重要的东西，并允许在我需要控制运行中的服务时终止流氓进程或冻结进程。但是，如果你想要其他显示更多信息，或一个看起来不同的东西，有哪些htop 替代品呢？让我们来看看。1、atopatop 可以提供所有运行的进程的细节。你可以得到你需要的所有数据，以了解你系统上的进程情况。它还提供了对资源利用率进行永久记录的能力，以便进行长期分析。系统管理员可能会发现这比其他工具更有用。不幸的是，它并没有为你提供漂亮的输出。因此，如果你想要的话，请继续看下面的其他替代品。如何安装 atop？对于基于 Ubuntu/Debian 的发行版，键入：sudo apt install atop 2、vtop如果你想要一个漂亮的输出和管理进程的基本功能，vtop 是一个完美的系统监控工具。正如我在其他一些文章中所说，它的输出看起来像终端中的 GUI。你可以使用鼠标，也可以选择禁用它。也可以定制它的主题。它是用 Node.js 构建的。所以，你需要安装额外的包来安装它。不幸的是，这个项目似乎不再积极维护。但是，在写这篇文章的时候，它对我来说还是有用的。如何安装 vtop？对于基于 Ubuntu 的发行版，在终端输入以下命令：sudo apt install nodejs sudo apt install npm sudo npm install -g vtop 3、btop++btop++ 是 bashtop 和 bpytop 的一个 C++ 版本。是的，它是这些项目的第三次迭代，由同一个开发者完成。btop++ 包括完全的鼠标支持，带有一个受游戏启发的菜单系统，可以让你过滤进程、树状视图等等。如何安装 btop++？使用官方软件库，你可以很容易地在 Fedora、openSUSE 和 FreeBSD 上安装它。对于 Fedora，你可以键入：sudo dnf install btop 你可以探索它的 GitHub 页面，了解在其他 Linux 发行版上的安装方式。4、GlancesGlances 与 htop 类似，但有更多的功能。它是一个跨平台的系统监控工具，可以将数据以 CSV 或其他格式导出，用于 InfluxDB、Elasticsearch 等。你也可以利用它的网页用户界面，远程（或在不能访问终端的情况下）查看统计数据。如何安装 Glances？对于基于 Ubuntu 的发行版，你可以键入：sudo apt install glances 5、nmonnmon 是一个令人印象深刻的监测工具，它可以让你控制你想显示的输出内容。你可以提取监测数据（以 CSV 格式导出）并用于进一步分析。它很容易切换统计数据和在不同的视图之间进行切换。默认情况下，它每两秒刷新一次数据，但你可以自定义它，并使用更多的选项来调整你的体验。如何安装 nmon？你可以在官方软件库中找到它。对于基于 Ubuntu 的发行版，在终端键入以下内容：sudo apt install nmon 总结top 2022top 命令工具被植入在你的 Linux 系统中。如果你想要一个基本的监控工具，想要关注系统进程和一些统计信息，top 就足够了。我不确定它是否可以算作比 htop 更强的体验，这也是 top 没有被列入主要列表的原因。正如你在这里看到的，一些监控工具可能很有趣，而且证明比 htop 更有洞察力。你最喜欢的 htop 替代品是什么？你认为 htop 对你的使用情况来说已经足够了吗？欢迎在下面的评论中让我知道你的想法。via: https://itsfoss.com/htop-alternatives/ 作者：Ankush Das 选题：lkxed 译者：wxy 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

如何在 Linux 中找出 CPU 占用高的进程
type: item
date: 2019-12-15T23:26:35+08:00
description: 在之前的文章中我们已经讨论过 如何在 Linux 中找出内存消耗最大的进程。你可能也会遇到在 Linux 系统中找出 CPU 占用高的进程的情形。如果是这样，那么你需要列出系统中 CPU 占用高的进程列表来确定。我认为只有两种方法能实现：使用 top 命令 和 ps 命令。出于一些理由，我更倾向于用 top 命令而不是 ps 命令。但是两个工具都能达到你要的目的，所以你可以根据需求决定使用哪个。这两个工具都被 Linux 系统管理员广泛使用。1) 怎样使用 top 命令找出 Linux 中 CPU 占用高的进程在所有监控 Linux 系统性能的工具中，Linux 的 top 命令是最好的也是最知名的一个。top 命令提供了 Linux 系统运行中的进程的动态实时视图。它能显示系统的概览信息和 Linux 内核当前管理的进程列表。它显示了大量的系统信息，如 CPU 使用、内存使用、交换内存、运行的进程数、目前系统开机时间、系统负载、缓冲区大小、缓存大小、进程 PID 等等。默认情况下，top 命令的输出结果按 CPU 占用进行排序，每 5 秒中更新一次结果。如果你想要一个更清晰的视图来更深入的分析结果，以批处理模式运行 top 命令 是最好的方法。同时，你需要 理解 top 命令输出结果的含义 ，这样才能解决系统的性能问题。# top -b | head -50 top - 00:19:17 up 14:23, 1 user, load average: 2.46, 2.18, 1.97 Tasks: 306 total, 1 running, 305 sleeping, 0 stopped, 0 zombie %Cpu0 : 10.4 us, 3.0 sy, 0.0 ni, 83.9 id, 0.0 wa, 1.3 hi, 1.3 si, 0.0 st %Cpu1 : 17.0 us, 3.0 sy, 0.0 ni, 78.7 id, 0.0 wa, 0.3 hi, 1.0 si, 0.0 st %Cpu2 : 13.0 us, 4.0 sy, 0.0 ni, 81.3 id, 0.0 wa, 0.3 hi, 1.3 si, 0.0 st %Cpu3 : 12.3 us, 3.3 sy, 0.0 ni, 82.5 id, 0.3 wa, 0.7 hi, 1.0 si, 0.0 st %Cpu4 : 12.2 us, 3.0 sy, 0.0 ni, 82.8 id, 0.7 wa, 0.3 hi, 1.0 si, 0.0 st %Cpu5 : 6.4 us, 2.7 sy, 0.0 ni, 89.2 id, 0.0 wa, 0.7 hi, 1.0 si, 0.0 st %Cpu6 : 26.7 us, 3.4 sy, 0.0 ni, 68.6 id, 0.0 wa, 0.7 hi, 0.7 si, 0.0 st %Cpu7 : 15.6 us, 4.0 sy, 0.0 ni, 78.8 id, 0.0 wa, 0.7 hi, 1.0 si, 0.0 st KiB Mem : 16248556 total, 1448920 free, 8571484 used, 6228152 buff/cache KiB Swap: 17873388 total, 17873388 free, 0 used. 4596044 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2179 daygeek 20 3106324 613584 327564 S 79.5 3.8 14:19.76 Web Content 1714 daygeek 20 4603372 974600 403504 S 20.2 6.0 65:18.91 firefox 1227 daygeek 20 4192012 376332 180348 S 13.9 2.3 20:43.26 gnome-shell 18324 daygeek 20 3296192 766040 127948 S 6.3 4.7 9:18.12 Web Content 1170 daygeek 20 1008264 572036 546180 S 6.0 3.5 18:07.85 Xorg 4684 daygeek 20 3363708 1.1g 1.0g S 3.6 7.2 13:49.92 VirtualBoxVM 4607 daygeek 20 4591040 1.7g 1.6g S 3.0 11.0 14:09.65 VirtualBoxVM 1211 daygeek 9 -11 2865268 21032 165…

如何在批处理模式下运行 top 命令
type: item
date: 2019-10-23T07:54:52+08:00
description: top 命令 是每个人都在使用的用于 监控 Linux 系统性能 的最好的命令。你可能已经知道 top 命令的绝大部分操作，除了很少的几个操作，如果我没错的话，批处理模式就是其中之一。大部分的脚本编写者和开发人员都知道这个，因为这个操作主要就是用来编写脚本。如果你不了解这个，不用担心，我们将在这里介绍它。什么是 top 命令的批处理模式批处理模式允许你将 top 命令的输出发送至其他程序或者文件中。在这个模式中，top 命令将不会接收输入并且持续运行，直到迭代次数达到你用 -n 选项指定的次数为止。如果你想解决 Linux 服务器上的任何性能问题，你需要正确的 理解 top 命令的输出。1) 如何在批处理模式下运行 top 命令默认地，top 命令按照 CPU 的使用率来排序输出结果，所以当你在批处理模式中运行以下命令时，它会执行同样的操作并打印前 35 行：# top -bc | head -35 top - 06:41:14 up 8 days, 20:24, 1 user, load average: 0.87, 0.77, 0.81 Tasks: 139 total, 1 running, 136 sleeping, 0 stopped, 2 zombie %Cpu(s): 0.0 us, 3.2 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 3880940 total, 1595932 free, 886736 used, 1398272 buff/cache KiB Swap: 1048572 total, 514640 free, 533932 used. 2648472 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 191144 2800 1596 S 0.0 0.1 5:43.63 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 2 root 20 0 0 0 0 S 0.0 0.0 0:00.32 [kthreadd] 3 root 20 0 0 0 0 S 0.0 0.0 0:28.10 [ksoftirqd/0] 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H] 7 root rt 0 0 0 0 S 0.0 0.0 0:33.96 [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 63:05.12 [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:08.79 [watchdog/0] 12 root rt 0 0 0 0 S 0.0 0.0 0:08.82 [watchdog/1] 13 root rt 0 0 0 0 S 0.0 0.0 0:44.27 [migration/1] 14 root 20 0 0 0 0 S 0.0 0.0 1:22.45 [ksoftirqd/1] 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/1:0H] 18 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [kdevtmpfs] 19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [netns] 20 root 20 0 0 0 0 S 0.0 0.0 0:01.35 [khungtaskd] 21 root 0 -20 0 0 0 S 0.0 0.0 0:00.02 [writeback] 22 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kintegrityd] 23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [bioset] 24 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kblockd] 25 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [md] 26 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [edac-poller] 33 root 20 0 0 0 0 S 0.0 0.0 1:19.07 [k…

监控 Linux 服务器活动的几个命令
type: item
date: 2019-02-02T03:33:02+08:00
description: watch、top 和 ac 命令为我们监视 Linux 服务器上的活动提供了一些十分高效的途径。为了在获取系统活动时更加轻松，Linux 系统提供了一系列相关的命令。在这篇文章中，我们就一起来看看这些对我们很有帮助的命令吧。watch 命令watch 是一个用来轻松地重复检测 Linux 系统中一系列数据命令，例如用户活动、正在运行进程、登录、内存使用等。这个命令实际上是重复地运行一个特定的命令，每次都会重写之前显示的输出，它提供了一个比较方便的方式用以监测在你的系统中发生的活动。首先以一个基础且不是特别有用的命令开始，你可以运行 watch -n 5 date，然后你可以看到在终端中显示了当前的日期和时间，这些数据会每五秒更新一次。你可能已经猜到了，-n 5 选项指定了运行接下来一次命令需要等待的秒数。默认是 2 秒。这个命令将会一直运行并按照指定的时间更新显示，直到你使用 ^C 停下它。Every 5.0s: date butterfly: Wed Jan 23 15:59:14 2019 Wed Jan 23 15:59:14 EST 2019下面是一个更有趣的命令实例，你可以监控一个在服务器中登录用户的列表，该列表会按照指定的时间定时更新。就像下面写到的，这个命令会每 10 秒更新一次这个列表。登出的用户将会从当前显示的列表中消失，那些新登录的将会被添加到这个表格当中。如果没有用户再登录或者登出，这个表格跟之前显示的将不会有任何不同。$ watch -n 10 who Every 10.0s: who butterfly: Tue Jan 23 16:02:03 2019 shs :0 2019-01-23 09:45 (:0) dory pts/0 2019-01-23 15:50 (192.168.0.5) nemo pts/1 2019-01-23 16:01 (192.168.0.15) shark pts/3 2019-01-23 11:11 (192.168.0.27)如果你只是想看有多少用户登录进来，可以通过 watch 调用 uptime 命令获取用户数和负载的平均水平，以及系统的工作状况。$ watch uptime Every 2.0s: uptime butterfly: Tue Jan 23 16:25:48 2019 16:25:48 up 22 days, 4:38, 3 users, load average: 1.15, 0.89, 1.02如果你想使用 watch 重复一个包含了管道的命令，就需要将该命令用引号括起来，就比如下面这个每五秒显示一次有多少进程正在运行的命令。$ watch -n 5 'ps -ef | wc -l' Every 5.0s: ps -ef | wc -l butterfly: Tue Jan 23 16:11:54 2019 245要查看内存使用，你也许会想要试一下下面的这个命令组合：$ watch -n 5 free -m Every 5.0s: free -m butterfly: Tue Jan 23 16:34:09 2019 Every 5.0s: free -m butterfly: Tue Jan 23 16:34:09 2019 total used free shared buff/cache available Mem: 5959 776 3276 12 1906 4878 Swap: 2047 0 2047你可以在 watch 后添加一些选项查看某个特定用户下运行的进程，不过 top 为此提供了更好的选择。top 命令如果你想查看某个特定用户下的进程，top 命令的 -u 选项可以很轻松地帮你达到这个目的。$ top -u nemo top - 16:14:33 up 2 days, 4:27, 3 users, load average: 0.00, 0.01, 0.02 Tasks: 199 total, 1 running, 198 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 5959.4 total, 3277.3 free, 776.4 used, 1905.8 buff/cache MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 4878.4 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 23026 nemo 20 0…

关于 top 工具的 6 个替代方案
type: item
date: 2018-12-08T21:45:49+08:00
description: 在 GitHub 和 GitLab 上，不断有来自世界各地的开源应用程序和工具涌现。其中有全新的应用程序，也有针对现有各种被广泛使用的 Linux 程序的替代方案。在本文档中，我会介绍一些针对 top 工具（也就是命令行任务管理器程序）的替代方案。top 工具的替代方案在本文中，将会介绍以下 6 种 top 工具的替代方案：HtopVtopGtopGotopPtopHegemon如果后续有更多类似的工具，原作者会在原文进行更新。如果你对此有兴趣，可以持续关注。Htophtop 是一个流行的开源跨平台交互式进程管理器，也是我最喜欢的系统活动监控工具。htop 是对原版 top 工具的扩展。它最初只是用于 Linux 系统，后来开发者们不断为其添加对其它类 Unix 操作系统的支持，包括 FreeBSD 和 Mac OS。htop 还是一个自由开源软件，它基于 ncurses 并按照 GPLv2 发布。和原版的 top 工具相比，htop 工具有这些优势：htop 比 top 启动更快htop 支持横向滚动和纵向滚动浏览进程列表，以便看到所有的进程和完整的命令行在 top 工具中进行杀死进程、更改进程优先级这些操作时，需要输入进程 ID，而在 htop 工具中则不需要输入在 htop 中可以同时杀死多个进程在 top 中每次输入一个未预设的键都要等待一段时间，尤其是在多个键组成转义字符串的时候就更麻烦了在很多 Linux 发行版的默认软件仓库中，都带有了 htop。在基于 Arch 的操作系统中则可以执行以下命令来安装 htop：$ sudo pacman -S htop在基于 Debian 的操作系统使用以下命令：$ sudo apt install htop在使用 RPM 软件管理的操作系统使用以下命令：$ sudo dnf install htop或者$ sudo yum install htop在 openSUSE 系统中：$ sudo zypper in htop用法不带任何参数执行 htop 时，会显示如下画面：$ htop从图上可以看出，htop 会在界面顶部显示内存、交换空间、任务总数、系统平均负载、系统正常运行时间这些常用指标，在下方则和 top 一样显示进程列表，并且将进程的 ID、用户、进程优先级、进程 nice 值、虚拟内存使用情况、CPU 使用情况、内存使用情况等信息以多列显示出来。如果你想详细了解这些数据的含义，可以在这里阅读参考。和 top 不同的是，htop 支持对不同的操作使用专有的按键。以下列出一些用于与 htop 交互的快捷键：F1、h、?：进入帮助界面。F2、Shift+s：进入设置界面。在设置界面中可以配置仪表板界面顶部显示哪些数据，以及设置颜色方案、显示列、显示顺序等等多种参数。F3、/：在进程列表中进行搜索。F4、\：进入筛选模式。输入一个字符串，筛选出包含这个字符串的进程。进入筛选模式后再按一次 F4 或者 ESC 可以退出筛选模式。F5、t：切换默认显示模式和树型显示模式，在树型显示模式下按 + 可以查看子树。F6、<、>：依次按照进程 ID、用户、进程优先级、进程 nice 值、CPU 使用率、内存使用率排序显示。F7、]：提高所选进程的优先级。F8、[：降低所选进程的优先级。F9、k：杀死所选进程。可以用 ↑ / ↓ 键选择不同的进程并按 F9 杀死进程。F10、q： 退出 htop以上这些快捷键都在 htop 界面底部显示。需要注意的是，这其中有一些快捷键可能会与已有的快捷键发生冲突。例如按 F2 之后可能没有进入 htop 的设置界面，而是开始了对终端窗口的重命名。在这种情况下，你可能要更改一下快捷键的设置。除了以上列出的快捷键以外，还有一些带有其它功能的快捷键，例如：u 可以选择显示某个用户的进程。Shift+m 可以按照内存使用量对进程列表排序。Shift+p 可以按照 CPU 使用量对进程列表排序。Shit+t 可以按照进程启动时间对进程列表排序。CTRL+l 刷新界面。htop 的所有功能都可以在启动后通过快捷键来调用，而不需要在启动的时候带上某个参数。当然，htop 也支持带参数启动。例如按照以下方式启动 htop 就可以只显示某个用户的进程：$ htop -u <username>更改界面自动刷新的时间间隔：$ htop -d 10看，htop 确实比 top 好用多了。想了解 htop 的更多细节，可以查阅它的手册页面：$ man htop也可以查看它的项目主页 和 GitHub 仓库。Vtopvtop 是 top 工具的另一个替代方案。它是一个使用 NodeJS 编写的、自由开源的命令行界面系统活动监视器，并使用 MIT 许可证发布。vtop 通过使用 un…

Hegemon：使用 Rust 编写的模块化系统监视程序
type: item
date: 2018-10-15T20:07:57+08:00
description: 在类 Unix 系统中监视运行进程时，最常用的程序是 top 和它的增强版 htop。我个人最喜欢的是 htop。但是，开发人员不时会发布这些程序的替代品。top 和 htop 工具的一个替代品是 Hegemon。它是使用 Rust 语言编写的模块化系统监视程序。关于 Hegemon 的功能，我们可以列出以下这些：Hegemon 会监控 CPU、内存和交换页的使用情况。它监控系统的温度和风扇速度。更新间隔时间可以调整。默认值为 3 秒。我们可以通过扩展数据流来展示更详细的图表和其他信息。单元测试。干净的界面。自由开源。安装 Hegemon确保已安装 Rust 1.26 或更高版本。要在 Linux 发行版中安装 Rust，请参阅以下指南：在 Linux 中安装 Rust 编程语言另外要安装 libsensors 库。它在大多数 Linux 发行版的默认仓库中都有。例如，你可以使用以下命令将其安装在基于 RPM 的系统（如 Fedora）中：$ sudo dnf install lm_sensors-devel在像 Ubuntu、Linux Mint 这样的基于 Debian 的系统上，可以使用这个命令安装它：$ sudo apt-get install libsensors4-dev在安装 Rust 和 libsensors 后，使用命令安装 Hegemon：$ cargo install hegemon安装 hegemon 后，使用以下命令开始监视 Linux 系统中正在运行的进程：$ hegemon以下是 Arch Linux 桌面的示例输出。要退出，请按 Q。请注意，hegemon 仍处于早期开发阶段，并不能完全取代 top 命令。它可能存在 bug 和功能缺失。如果你遇到任何 bug，请在项目的 GitHub 页面中报告它们。开发人员计划在即将推出的版本中引入更多功能。所以，请关注这个项目。就是这些了。希望这篇文章有用。还有更多的好东西。敬请关注！干杯!via: https://www.ostechnix.com/hegemon-a-modular-system-monitor-application-written-in-rust/作者：SK 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

使用 top 命令了解 Fedora 的内存使用情况
type: item
date: 2018-09-26T18:15:01+08:00
description: 如果你使用过 top 命令来查看 Fedora 系统中的内存使用情况，你可能会惊讶，看起来消耗的数量比系统可用的内存更多。下面会详细介绍内存使用情况以及如何理解这些数据。内存实际使用情况操作系统对内存的使用方式并不是太通俗易懂。事实上，其背后有很多不为人知的巧妙技术在发挥着作用。通过这些方式，可以在无需用户干预的情况下，让操作系统更有效地使用内存。大多数应用程序都不是系统自带的，但每个应用程序都依赖于安装在系统中的库中的一些函数集。在 Fedora 中，RPM 包管理系统能够确保在安装应用程序时也会安装所依赖的库。当应用程序运行时，操作系统并不需要将它要用到的所有信息都加载到物理内存中。而是会为存放代码的存储空间构建一个映射，称为虚拟内存。操作系统只把需要的部分加载到内存中，当某一个部分不再需要后，这一部分内存就会被释放掉。这意味着应用程序可以映射大量的虚拟内存，而使用较少的系统物理内存。特殊情况下，映射的虚拟内存甚至可以比系统实际可用的物理内存更多！而且在操作系统中这种情况也并不少见。另外，不同的应用程序可能会对同一个库都有依赖。Fedora 中的 Linux 内核通常会在各个应用程序之间共享内存，而不需要为不同应用分别加载同一个库的多个副本。类似地，对于同一个应用程序的不同实例也是采用这种方式共享内存。如果不首先了解这些细节，top 命令显示的数据可能会让人摸不着头脑。下面就举例说明如何正确查看内存使用量。使用 top 命令查看内存使用量如果你还没有使用过 top 命令，可以打开终端直接执行查看。使用 Shift + M 可以按照内存使用量来进行排序。下图是在 Fedora Workstation 中执行的结果，在你的机器上显示的结果可能会略有不同：主要通过以下三列来查看内存使用情况：VIRT、RES 和 SHR。目前以 KB 为单位显示相关数值。VIRT 列代表该进程映射的 虚拟 virtual 内存。如上所述，虚拟内存不是实际消耗的物理内存。例如， GNOME Shell 进程 gnome-shell 实际上没有消耗超过 3.1 GB 的物理内存，但它对很多更低或更高级的库都有依赖，系统必须对每个库都进行映射，以确保在有需要时可以加载这些库。RES 列代表应用程序消耗了多少实际（ 驻留 resident ）内存。对于 GNOME Shell 大约是 180788 KB。例子中的系统拥有大约 7704 MB 的物理内存，因此内存使用率显示为 2.3％。但根据 SHR 列显示，其中至少有 88212 KB 是 共享 shared 内存，这部分内存可能是其它应用程序也在使用的库函数。这意味着 GNOME Shell 本身大约有 92 MB 内存不与其他进程共享。需要注意的是，上述例子中的其它程序也共享了很多内存。在某些应用程序中，共享内存在内存使用量中会占很大的比例。值得一提的是，有时进程之间通过内存通信，这些内存也是共享的，但 top 这样的工具却不一定能检测到，所以以上的说明也不一定准确。关于交换分区系统还可以通过交换分区来存储数据（例如硬盘），但读写的速度相对较慢。当物理内存渐渐用满，操作系统就会查找内存中暂时不会使用的部分，将其写出到交换区域等待需要的时候使用。因此，如果交换内存的使用量一直偏高，表明系统的物理内存已经供不应求了。有时候一个不正常的应用也有可能导致出现这种情况，但如果这种现象经常出现，就需要考虑提升物理内存或者限制某些程序的运行了。感谢 Stig Nygaard 在 Flickr 上提供的图片（CC BY 2.0）。via: https://fedoramagazine.org/understand-fedora-memory-usage-top/作者：Paul W. Frields 选题：lujun9972 译者：HankChow 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

在 Linux 中使用 top 命令的建议
type: item
date: 2018-08-21T16:56:00+08:00
description: 通过这篇教程提升你的 top 命令的知识。尝试找出你的机器正在运行什么程序，以及哪个进程耗尽了内存导致系统非常非常慢 —— 这是 top 命令所能胜任的工作。top 是一个非常有用的程序，其作用类似于 Windows 任务管理器或 MacOS 的活动监视器。在 *nix 机器上运行 top 将实时显示系统上运行的进程的情况。$ top取决于你运行的 top 版本，你会看到类似如下内容：top - 08:31:32 up 1 day, 4:09, 0 users, load average: 0.20, 0.12, 0.10 Tasks: 3 total, 1 running, 2 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.5 us, 0.3 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 4042284 total, 2523744 used, 1518540 free, 263776 buffers KiB Swap: 1048572 total, 0 used, 1048572 free. 1804264 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 21964 3632 3124 S 0.0 0.1 0:00.23 bash 193 root 20 0 123520 29636 8640 S 0.0 0.7 0:00.58 flask 195 root 20 0 23608 2724 2400 R 0.0 0.1 0:00.21 top你所用的 top 版本可能跟这个看起来不一样，特别是在显示的列上。如何阅读输出的内容你可以根据输出判断你正在运行的内容，但尝试去解释结果你可能会有些困惑。前几行包含一堆统计信息（详细信息），后跟一个包含结果列的表（列）。让我们从后者开始吧。列这些是系统正在运行的进程。默认按 CPU 使用率降序排序。这意味着在列表顶部的程序正使用更多的 CPU 资源并对你的系统造成更重的负担。对于资源使用而言，这些程序是字面上的消耗资源最多的（top）进程。不得不说，top 这个名字起得很妙。最右边的 COMMAND 一列报告进程名（启动它们的命令）。在这个例子里，进程名是 bash（一个我们正在运行 top 的命令解释器）、flask（一个 Python 写的 web 框架）和 top 自身。其它列提供了关于进程的有用信息：PID：进程 ID，一个用来定位进程的唯一标识符USER：运行进程的用户PR：任务的优先级NI：Nice 值，优先级的一个更好的表现形式VIRT：虚拟内存的大小，单位是 KiB（kibibytes）RES：常驻内存大小，单位是 KiB（物理内存和虚拟内存的一部分）SHR：共享内存大小，单位是 KiB（共享内存和虚拟内存的一部分）S：进程状态，一般 I 代表空闲，R 代表运行，S 代表休眠，Z 代表僵尸进程，T 或 t 代表停止（还有其它更少见的选项）%CPU：自从上次屏幕更新后的 CPU 使用率%MEM：自从上次屏幕更新后的 RES 常驻内存使用率TIME+：自从程序启动后总的 CPU 使用时间COMMAND：启动命令，如之前描述那样确切知道 VIRT，RES 和 SHR 值代表什么在日常操作中并不重要。重要的是要知道 VIRT 值最高的进程就是内存使用最多的进程。当你在用 top 排查为什么你的电脑运行无比卡的时候，那个 VIRT 数值最大的进程就是元凶。如果你想要知道共享内存和物理内存的确切意思，请查阅 top 手册的 Linux Memory Types 段落。是的，我说的是 kibibytes 而不是 kilobytes。通常称为 kilobyte 的 1024 值实际上是 kibibyte。希腊语的 kilo（χίλιοι）意思是一千（例如一千米是 1000 米，一千克是 1000 克）。Kibi 是 kilo 和 binary 的合成词，意思是 1024 字节（或者 2 10 ）。但是，因为这个词很难说，所以很多人在说 1024 字节的时候会说 kilobyte。top 试图在这里使用恰当的术语，所以按它说的理解就好。屏幕更新说明实时屏幕更新是 Linux 程序可以做的 非常酷 的事之一。这意味着程序能实时更新它们显示的内容，所以看起来是动态的，即使它们用的是文本。非常酷！在我们的例子中，更新时间间隔很重要，因为一些统计数据（%CPU 和 %MEM）是基于上次屏幕更新的数值的。因为我们运行在一个持久性的程序中，我们就可以输入一些命令来实时修改配置（而不是停…

Gotop：另一个 TUI 图形活动监视器，使用 Go 编写
type: item
date: 2018-05-07T17:19:34+08:00
description: 你已经知道 top 命令，对么？是的，它提供类 Unix 操作系统中运行中的进程的动态实时信息。一些开发人员为 top 命令构建了图形前端，因此用户可以在图形窗口中轻松找到他们系统的活动。其中之一是 Gotop。顾名思义，Gotop 是一个 TUI 图形活动监视器，使用 Go 语言编写。它是完全免费、开源的，受到了 gtop 和 vtop 的启发。在此简要的指南中，我们将讨论如何安装和使用 Gotop 来监视 Linux 系统的活动。安装 GotopGotop 是用 Go 编写的，所以我们需要先安装它。要在 Linux 中安装 Go 语言，请参阅以下指南。安装 Go 之后，使用以下命令下载最新的 Gotop 二进制文件。$ sh -c "$(curl https://raw.githubusercontent.com/cjbassi/gotop/master/download.sh)" 然后，将下载的二进制文件移动到您的 $PATH 中，例如 /usr/local/bin/。$ cp gotop /usr/local/bin 最后，用下面的命令使其可执行：$ chmod +x /usr/local/bin/gotop 如果你使用的是基于 Arch 的系统，Gotop 存在于 AUR 中，所以你可以使用任何 AUR 助手程序进行安装。使用 Cower：$ cower -S gotop 使用 Pacaur：$ pacaur -S gotop 使用 Packer：$ packer -S gotop 使用 Trizen：$ trizen -S gotop 使用 Yay：$ yay -S gotop 使用 yaourt：$ yaourt -S gotop 用法Gotop 的使用非常简单！你所要做的就是从终端运行以下命令。$ gotop 这样就行了！你将在简单的 TUI 窗口中看到系统 CPU、磁盘、内存、网络、CPU温度和进程列表的使用情况。要仅显示CPU、内存和进程组件，请使用下面的 -m 标志：$ gotop -m 你可以使用以下键盘快捷键对进程表进行排序。c – CPUm – 内存p – PID对于进程浏览，请使用以下键。上/下 箭头或者 j/k 键用于上移下移。Ctrl-d 和 Ctrl-u – 上移和下移半页。Ctrl-f 和 Ctrl-b – 上移和下移整页。gg 和 G – 跳转顶部和底部。按下 TAB 切换进程分组。要杀死选定的进程或进程组，请输入 dd。要选择一个进程，只需点击它。要向下/向上滚动，请使用鼠标滚动按钮。要放大和缩小 CPU 和内存的图形，请使用 h 和 l。要显示帮助菜单，只需按 ?。就是这些了。希望这有帮助。还有更多好东西。敬请关注！资源Gotop GitHub Repositoryvia: https://www.ostechnix.com/gotop-yet-another-tui-graphical-activity-monitor-written-in-go/作者：SK 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出