查找使用最多 CPU Linux 的进程
在 Linux 中很多时候都会出现这样的情况,我们必须处理由于 CPU 使用而导致的应用程序无响应或缓慢的情况。当我们的Linux系统CPU非常繁忙时就会发生这种情况。大多数时候,它必须等到 CPU 空闲并排队才能处理其挂起的请求。
每当CPU完全被Linux系统的进程占用时,CPU就变得很难处理其他请求。所有剩余的请求都必须停止,直到 CPU 被释放。这成为一个巨大的障碍。
我们必须使用适当的命令来了解影响 CPU 的进程。在本文中,我们将讲述如何借助以下命令解决与 CPU 相关的问题,以及如何找到那些使用最多 CPU Linux 的进程。
查找使用最多 CPU Linux 的进程
查找CPU 使用率是一项非常重要的任务。 Linux 附带了多个实用程序来报告 CPU 使用情况。
CPU使用率
提供每个 CPU 利用率的概览(SMP CPU)
自上次重新启动以来已使用了多少 CPU
确定哪些内容消耗了 CPU(或多个 CPU)
我们有很多这样的方法,借助它们我们可以看到 Linux 进程中 CPU 的使用情况。
Top 命令(进程表或 TOP)
每个人都使用top命令来监控Linux系统,因为它很好而且众所周知。通过top命令,系统提供了cpu使用情况的动态概览。 top 命令经常生成 top 命令进程的更新列表。该命令向我们展示 CPU 如何使用内存和处理能力,并提供有关其他正在运行的进程的信息。
top 命令显示当前由 Linux 内核管理的任务列表,以及完整的系统摘要。此命令监视内存使用情况、进程统计信息和 CPU 使用情况。
它的顶部包含许多与整体系统状态相关的有用信息,包括交换空间和内存的使用统计信息、CPU 状态、进程计数、平均负载、正常运行时间等。
此列表可能会经常更改,但您可以按 Q 按钮停止刷新过程。我们可以使用 -i 开关启动 apex。
它隐藏所有非活动进程,以便更轻松地对列表进行排序。使用以下命令:
M:根据系统使用的内存对任务列表进行排序
P:根据CPU使用率对任务进行排序
N:根据流程对任务进行排序
T:按运行时间排序任务列表
默认情况下,此命令通过每 5 秒更新一次 top 命令数据来对 top 输出与 CPU 使用率进行排序。
为了进一步分析,最好在批处理模式下运行后清楚地看到top的输出。使用 top 命令,您可以了解 Linux 的 CPU 统计信息。
top命令在多个CPU上以及在真正的SMP环境中,CPU数量最多的情况下表现良好。要退出顶部命令显示,我们必须键入 q 键。
ps 命令(进程状态)
PS 命令显示有关系统上正在运行的活动进程的信息。此命令提供当前进程的快照,其中包含详细信息,如时间命令名称、进程启动日期、内存使用情况、CPU 使用情况、用户 ID、用户名等。
此命令提供当前进程的快照,其中包含详细信息,如时间命令名称、进程启动日期、内存使用情况、CPU 使用情况、用户 ID、用户名等。
htop命令
htop 命令也类似于 top 命令,但它的功能之一是它允许我们水平和垂直滚动等等。
搜寻与援救司令部
使用 sar 命令,您可以将今天的 CPU 活动作为管理系统资源的实用程序来查看。
-u 选项允许您跟踪 CPU 性能,但不仅限于 CPU 使用情况。
您可以通过 sar 命令在操作系统中选定的累积活动计数器上打印标准输出。它根据间隔和计算参数给出输出。例如间隔2秒; 5次,使用:
使用 –u 选项显示 CPU 使用情况。每当它显示时,它应该每五秒显示一次。您可以按 Ctrl-C 取消此操作。
此处,U12 5 显示以下 CPU 使用率值。
% user:显示在应用程序和用户级别执行时的CPU 使用情况。
%nice:显示应用程序运行时用户的 CPU 使用情况。
%system:显示在(内核)系统级别执行时的 CPU 使用情况。
%iowait:此度量跟踪系统具有未完成的磁盘 I/O 请求的空闲时间量。
%idle:显示 CPU 或 CPU 空闲且系统没有未完成的 I/O 磁盘请求的时间百分比。
必须为多个报告和多个样本设置输出文件,才能从 Sar 命令获取报告。作为后台进程运行此命令。
即使注销后,如果我们想查看回来的报告,那么我们可以更好地使用 nohup 命令。
该文件包含该文件中所有数据的二进制副本。使用 -f 选项,您可以使用 sar 命令显示此数据。
找出谁在消耗或垄断 CPU。最后,我们确定哪个进程正在消耗并独占CPU。以下命令显示 Linux 系统上前 10 个 CPU 用户。
iostat命令
该命令用于查找自上次重新启动以来系统的平均使用情况。通过使用 iostat 命令,我们报告 CPU(中央处理单元)的分区、设备和数据。
如果我们使用下面给出的命令,我们将每 5 秒获得 3 个输出。
vmstat命令
使用vmstat,您可以检查CPU、磁盘、IO、内存、陷阱、进程等。这个命令是这样的。
百分比表示每个 CPU 核心所花费的时间。
us:非内核代码的运行时。
sy:内核执行的持续时间。
id:空闲分钟数。
wa:I/O等待时间。
st:从虚拟机窃取的时间。
nmon命令
IBM 的 Nigel Griffiths 开发了监控工具 Nmon。按照以下说明安装监控工具 Nmon:
输入以下信息以安装 CentOS:
$ sudo yum install nmon
启动 nmon 需要以下命令:
不同的选项有不同的键,如下图所示:
您可以按 Q 按钮退出该工具。
mpstat 和其他工具
要利用这些功能,我们必须首先安装 sysstat 软件包。此 Linux 软件包中包含默认工具和系统性能工具,例如 RHEL/Red Hat Linux。我们可以通过以下命令在 Ubuntu 或 Debian 上安装它:
要为不同版本的Linux安装sysstat,我们必须根据它们使用命令。
适用于 CentOS/RHEL Linux v4.x 或更早版本的 up2date 命令
适用于 Oracle/RHEL/CentOS Linux v5.x+ 或更高版本的 yum 命令
Fedora 用户的 dnf 命令
通过使用 mpstat,单独显示每个 CPU 的使用情况。如果我们使用多CPU和SMP系统,那么我们使用mpstat命令来显示不同CPU的使用情况。该命令为我们提供了与处理器相关的统计信息报告。
进程 0 是第一个可用的处理器,mpstat 显示每个处理器的活动。 mpstat 命令可在 UP 和 SMP 机器上使用,但后者只会打印活动的全局平均值。
%usr:用户级别的CPU利用率
%nice:“nice”进程的 CPU 使用率
%sys:内核上的CPU使用率(系统级)
%iowait:磁盘读/写时CPU空闲
%irq:硬件中断期间的CPU使用率
%soft:处理软件中断与CPU占用率
%steal:CPU 使用率被迫等待另一个虚拟处理器完成处理
%guest:虚拟处理器运行时的处理器使用情况
%idle:空闲时的CPU使用率(无进程运行,无磁盘读/写等待)
用于在 Linux 中查找使用最多 CPU 的进程的 GUI 工具
上述工具/命令对于远程服务器非常有用。我们可以在本地系统上尝试使用 X GUI 的 gnome-system-monitor。它使我们能够监视和控制系统的进程。通过它,我们可以终止进程、发送信号和访问内存映射。
此外,gnome-system-monitor 向我们展示了系统资源使用情况的整体视图,包括 CPU 和内存分配。
结论
在本文中,我们提供了有关许多 Linux 命令行工具的信息。通过所有这些命令,我们可以看到如何找出 CPU 的最大使用率并停止它。通过这个,我们可以停止它的使用并继续CPU的第二次处理。