Linux 中的 top 命令
Linux 中的 top
命令旨在帮助用户确定哪些进程处于活动状态以及哪些应用程序消耗的内存或处理能力超出了应有的水平。
top 命令使用起来很简单,但你应该知道具体细节。平均负载是评估服务器性能的一个有问题的指标。
Linux 中 top
命令的详细说明
在终端中输入 top
:
$ top
输出:
top - 00:04:54 up 3:30, 1 user, load average: 1.84, 3.02, 2.50
Tasks: 233 total, 2 running, 231 sleeping, 0 stopped, 0 zombie
%Cpu(s): 38.5 us, 9.5 sy, 0.0 ni, 51.6 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3840.9 total, 277.3 free, 2286.3 used, 1277.3 buff/cache
MiB Swap: 2048.0 total, 1447.0 free, 601.0 used. 777.7 avail Mem
top - 00:04:54 up 3:30, 1 user,
:该命令显示当前系统时间,然后是uptime
,在本例中为 3 小时 30 分钟,最后是登录到系统的用户数,在本例中为 1。通过 SSH,这可以在本地、空闲、屏幕等上完成。load average: 1.84, 3.02, 2.50
:此部分显示平均负载,这可能是一个令人费解的概念,尤其是在处理虚拟机和云时。第一个数字是当前负载平均值,第二个数字是 5 分钟平均值,第三个数字是 15 分钟负载平均值。Tasks: 233 total, 2 running, 231 sleeping, 0 stopped, 0 zombie
:当你键入ps aux
或其使用的变体时会出现应用程序的数量
正在进行的进程数表明你的 CPU 当前正在使用多少。由于非多线程应用程序一次只能使用一个 CPU,因此在四核服务器上通常会看到两种方法占用 50% 的 CPU,平均负载为 2。
休眠进程数表示正在运行但未主动使用;这通常包括许多后台作业、系统软件、打印机驱动程序和其他此类项目。
除非你向进程发送 SIGSTOP
或 kill-STOP
以进行故障排除,否则停止的进程数应为 0
。不同于 0
的值可能会引起生产系统的关注。
涉及僵尸进程的进程表示多线程应用程序创建的子进程突然销毁或终止,留下僵尸进程。
如果发生了可怕的事情,Apache 很可能会采取报复行动。在大多数情况下,这也应该是 0
。
关于 CPU 的信息
%Cpu(s): 38.5 us, 9.5 sy, 0.0 ni, 51.6 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
- 每个处理器使用最多 100% 的时间百分比。因此,在一个进程占用一个 CPU 100% 的四核上,这将表示 25% 的使用率。在 8 核系统上,12.5% 意味着 1 个核心被固定。
- 术语
系统 CPU 利用率百分比
是指使用了多少系统 CPU。此处较高的数字可能表明内核配置存在问题、驱动程序问题或任何其他原因。 - 百分比
ni
表示受nice
或renice
命令影响的用户进程使用的 CPU 百分比,即它们的优先级已从调度程序的默认值修改为更高或更低。正数表示优先级较低,负数表示优先级较高。默认值为 0,这表明调度程序做出决定。 - 从 100.0% 减去前三个数字的结果是百分比
id
,它衡量空闲
处理能力。 wa
是 CPU 等待的% of I/O
。当一个进程或程序需要数据时,它首先检查处理器缓存,然后是内存,最后是磁盘。它通常必须等待 IO 线程完成将信息读取到 RAM 中,然后才能在它碰到磁盘时再次处理它。磁盘越慢,每个进程的 IO 等待百分比就越高。如果等待时间始终大于 100/(CPU 数 * 进程数),则可能存在需要监控的存储问题。如果你检测到高负载平均值,请首先检查此数字。如果此值很高,则磁盘上的进程会出现瓶颈。si
是服务软件中断所花费的时间。与在主板的中断线上请求中断的硬件或设备(驱动程序)不同,Linux 内核在 2.4 版中包含一个功能,允许软件请求中断,内核通过其中断处理程序处理它。这意味着应用程序可以请求优先级状态,内核可以确认收到请求,软件将耐心等待中断被处理。st
指的是被虚拟机窃取的时间。我们不使用 VM 来限制 CPU,因此偶尔让一两个 VM 使用 8 个 CPU 不会损害整个池。如果虚拟机的虚拟 CPU 使用的物理 CPU(或超线程至强处理器中的逻辑 CPU)CPU 的数量大于物理 CPU 的数量,则窃取时间
将增加。
在 Linux 中使用 top
命令
显示 top
命令语法:
$ top -h
输出:
procps-ng 3.3.16
Usage:
top -hv | -bcEHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]
你可以在安全模式下使用 top
命令。
$ top -s
相关文章
如何在 CentOS 中获取 IP 地址
发布时间:2023/05/04 浏览次数:108 分类:操作系统
-
这篇简短的文章是对 CentOS 的一个简短介绍,然后简要讨论了我们如何使用命令行界面 (CLI) 在 CentOS 中获取服务器 IP 地址。
在 Linux 中更新 YUM
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。
在 Linux 中安装 Deb 文件
发布时间:2023/05/04 浏览次数:130 分类:操作系统
-
本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。
Linux 中的 lsof 命令
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。
Linux 解决不能执行二进制文件问题
发布时间:2023/05/04 浏览次数:187 分类:操作系统
-
在本文中,我们将学习如何在 Linux 中执行二进制文件。 如果 Linux 无法执行二进制文件,我们还将学习如何解决错误。
Linux 中错误 Mesg: Ttyname Failed: Inappropriate Ioctl for Device Error
发布时间:2023/05/04 浏览次数:145 分类:操作系统
-
本文介绍如何在 Linux 中解决 mesg: ttyname failed: inappropriate ioctl for device 错误。在 Linux 中,这个错误是由于默认的 vagrant 配置 config.ssh.shell 与 bash -l 交互导致的。
Linux 中的 ps aux 命令
发布时间:2023/05/04 浏览次数:69 分类:操作系统
-
本篇文章将讨论 Linux 中的 ps aux 命令。如果将 aux 快捷方式与 ps 命令一起使用,它将显示用户需要的最多信息,并可以为您提供系统运行进程的当前状态。
Linux 中的 NTP
发布时间:2023/05/04 浏览次数:137 分类:操作系统
-
本篇文章将讨论 Linux 中的 ntp。NTP 是大多数 IT 基础设施使用的核心协议。 使用它的目的是同步日期和时间信息。
在 Bash 中创建进度条
发布时间:2023/05/04 浏览次数:164 分类:操作系统
-
这是有关在 Bash 中创建进度条以显示正在运行的命令或进程的进度的指南。本文将探讨在 Bash(Linux 和 macOS 的默认 shell)中向 shell 脚本添加进度条的几种方法。使用 pv 命令在 Bash 中创建进度条