本文共 5679 字,大约阅读时间需要 18 分钟。
glances
系统管理员有许多工具可以查看和管理正在运行的进程。 对我来说,这些主要是top , atop和htop 。 几年前,我找到了 ,该工具可以显示其他收藏夹都没有的信息。 所有这些工具都监视CPU和内存使用情况,并且大多数(至少)列出有关正在运行的进程的信息。 但是,Glances还监视文件系统I / O,网络I / O和传感器读数,这些读数可以显示CPU和其他硬件温度以及风扇速度和按硬件设备和逻辑卷的磁盘使用情况。
我在我的文章提到了Glances,但在本文中我将对其进行更深入的研究。 如果您阅读了我的上一篇文章,其中的一些信息可能是熟悉的,但是您还应该在这里找到一些新的东西。
Glances是跨平台的,因为它是用Python编写的。 可以将其安装在装有最新版本Python的Windows和其他主机上。 大多数Linux发行版(在我的情况下为Fedora)在其存储库中都有Glances。 如果不是,或者您使用的是其他操作系统(例如Windows),或者您只想从源代码中正确获取它,则可以在找到有关下载和安装它的说明。
我建议您在尝试本文中的命令时在测试机上运行Glances。 如果您没有可用于测试的物理主机,则可以在虚拟机(VM)上浏览Glances,但不会看到“硬件传感器”部分。 毕竟,VM没有真正的硬件。
要在Linux主机上启动Glances,请打开终端会话并输入命令glances 。
Glances有三个主要部分-摘要,过程和警报-以及侧边栏。 我将探索它们以及其他现在使用Glances的细节。
Glances的“摘要”部分的前几行包含与其他监视器的“摘要”部分相同的信息。 如果终端中有足够的水平空间,Glances可以同时显示条形图和数字指示器,以显示CPU使用情况。 否则,它将仅显示数字。
我比其他监视器(例如top )更喜欢Glances的“摘要”部分; 我认为它以易于理解的格式提供了正确的信息。
上面的“摘要”部分概述了系统的状态。 第一行显示主机名,Linux发行版,内核版本和系统正常运行时间。
接下来的四行显示CPU,内存使用率,交换和负载统计信息。 左列显示正在使用的CPU,内存和交换空间的百分比。 它还显示了系统中所有CPU的组合统计信息。
按1键在合并的CPU使用率显示和各个CPU的显示之间切换。 下图显示了带有各个CPU统计信息的Glances屏幕。
此视图包括一些其他CPU统计信息。 在任一显示模式下,CPU使用率字段的描述都可以帮助您解释“ CPU”部分中显示的数据。 请注意,CPU的编号从0(零)开始。
CPU | 这是当前CPU使用量占总可用量的百分比。 |
user | 这些是在用户空间(即不在内核中)运行的应用程序和其他程序。 |
system | 这些是内核级功能。 它不包括内核本身占用的CPU时间,仅包括内核系统调用。 |
idle | 这是空闲时间,即任何正在运行的进程未使用的时间。 |
nice | 这是正积极运行的进程所用的时间。 |
irq | 这些是占用CPU时间的中断请求。 |
iowait | 这些是等待I / O发生所花费的CPU周期-这浪费了CPU时间。 |
steal | 虚拟机管理程序为另一个虚拟处理器提供服务时,虚拟CPU等待实际CPU的CPU周期百分比。 |
ctx-sw | 这些是每秒上下文切换的数量。 它表示每秒CPU从运行一个进程切换到另一个进程的次数。 |
inter | 这是每秒的硬件中断数。 当硬件设备(例如硬盘驱动器)告诉CPU它已完成数据传输或网络接口卡已准备好接受更多数据时,就会发生硬件中断。 |
sw_int | 软件中断告诉CPU一些请求的任务已经完成,或者该软件已准备就绪。 这些在内核级软件中更常见。 |
精确数字是管理员用来影响进程优先级的机制。 不可能直接更改进程的优先级,但是更改有效数可以修改内核调度程序的优先级设置算法的结果。 好的数字从-20到+19,较高的数字更好。 默认的nice数为0,默认优先级为20。将nice数设置为大于零会稍微增加优先级数,从而使进程更美观,从而减少对CPU周期的贪婪。 将nice编号设置为更大的负数会导致优先级较低的数字,从而使过程变得不太友好。 可以使用renice命令或从顶部,顶部和顶部停止更改漂亮的数字。
摘要部分的内存部分包含有关内存使用情况的统计信息。
MEM | 这显示内存使用率占可用总量的百分比。 |
total | 这是主机中安装的RAM内存总量减去分配给显示适配器的任何数量。 |
used | 这是系统和应用程序正在使用的内存总量,但不包括缓存或缓冲区。 |
free | 这是可用内存量。 |
active | 这是活动使用的内存量-如果需要,可以将不活动的内存交换到磁盘。 |
inactive | 这是正在使用但一段时间未访问的内存。 |
buffers | 这是用于缓冲区空间的内存。 它通常由通信和I / O(例如网络)使用。 数据将被接收和存储,直到软件可以检索使用或将其发送到存储设备或发送到网络为止。 |
cached | 这是用于存储磁盘传输数据的内存,直到可以被程序使用或存储到磁盘为止。 |
如果您对交换空间及其工作原理有一点了解,那么“交换”部分是不言自明的。 这显示了总可用交换空间的数量,已使用的空间以及剩余的空间。
“摘要”部分的“负载”部分显示一分钟,五分钟和15分钟的平均负载。
您可以使用数字键1,3,4,5,以改变你在本节中的数据的视图。 2键可切换左侧边栏的开和关。
负载平均通常被误解,即使它们是衡量CPU使用率的关键标准。 但是,当我说一分钟(或五分钟或十分钟)的平均负载为4.04时,这实际上是什么意思? 平均负载可以视为对CPU需求的度量; 它是代表等待CPU时间的平均指令数的数字,因此它是对CPU性能的真实衡量。
对于多个处理器也是如此。 如果四CPU系统的平均负载为4,则它具有完美的利用率。 例如,如果平均负载为3.24,则将充分利用其三个处理器,而其中一个处理器的利用率约为24%。 在上面的示例中,一个四CPU系统的一分钟平均负载为4.04,这意味着四个CPU之间没有剩余容量,并且一些指令被迫等待。 完美利用的四CPU系统的平均负载为4.00,这意味着系统已满载但未过载。
最佳平均负载条件是平均负载等于系统中CPU的总数。 这意味着每个CPU都被充分利用,并且不必强制任何指令等待。 但是现实是混乱的,很少满足最佳条件。 如果主机以100%的利用率运行,则不会导致CPU负载需求激增。
长期平均负载表明总体利用率趋势。
《 Linux Journal 》在2006年12月1日的一期中发表了一篇 ,理论,其背后的数学以及如何解释它们的出色文章。 不幸的是, Linux Journal已停止发布,并且其存档也不再直接可用,因此该链接是第三方存档。
使用Glances之类的工具的原因之一是找到占用过多CPU时间的进程。 打开一个新的终端会话(与运行中的Glances不同),然后输入并启动以下占用CPU的Bash程序。
X = 0 ; while [ 1 ] ; do echo $X ; X =$ ( ( X+ 1 ) ) ; done
该程序是一个CPU作业,将占用每个可用的CPU周期。 在完成本文并尝试使用Glances时,请使其运行。 它将使您了解占用CPU周期的程序的外观。 确保注意随时间变化对平均负载的影响,以及该过程在TIME +列中的累积时间。
“进程”部分显示有关正在运行的每个进程的标准信息。 根据查看模式和终端屏幕的大小,将为正在运行的进程显示不同的信息列。 带有较宽端子的默认模式将显示以下列。 如果调整了终端屏幕的大小,显示的列将自动更改。 通常从左到右显示每个过程的以下列。
CPU% | 这是CPU时间占单个内核的百分比。 例如,98%代表单个内核可用CPU周期的98%。 多个进程最多可以显示100%的CPU使用率。 |
MEM% | 这是进程使用的RAM内存占主机中总虚拟内存的百分比。 |
VIRT | 这是进程以人类可读格式使用的虚拟内存量,例如12M表示12兆字节。 |
RES | 这是指该进程使用的物理(驻留)内存量。 同样,这是人类可读的格式,带有指示符K , M或G ,以指定千字节,兆字节或千兆字节。 |
PID | 每个进程都有一个标识号,称为PID。 可以在renice和kill等命令中使用此数字来管理进程。 请记住,除“ kill”信号外, kill实用程序还可以将信号发送到另一个进程。 |
USER | 这是拥有该进程的用户的名称。 |
TIME+ | 这表明该进程自启动以来累计的CPU时间。 |
THR | 这是当前为此进程运行的线程总数。 |
NI | 这是很好的过程。 |
S | 这是当前状态; 它可能是( R )运行,( S )Hibernate,( I )闲置,在调试跟踪过程中停止进程时的T或t或( Z )ombie。 僵尸是已经被杀死但尚未完全死亡的进程,因此它继续消耗一些系统资源,例如RAM。 |
R/s and W/s | 这些是磁盘每秒的读写次数。 |
Command | 这是用于启动该过程的命令。 |
Glances通常会自动确定默认的排序列。 进程可以自动排序( a ),也可以按CPU( c ),内存( m ),名称( p ),用户( u ),I / O速率( i )或时间( t )进行排序。 进程按最常用的资源自动排序。 在上面的图像中, TIME +列突出显示。
概览还可以在屏幕底部显示警告和严重警报,包括事件的时间和持续时间。 当您尝试诊断问题并且无法一次盯着屏幕看几个小时时,这可能会很有帮助。 可以使用l (小写L)键打开或关闭这些警报日志,可以使用w键清除警告,而可以使用x清除警报和警告。
Glances在左侧有一个非常漂亮的侧栏,它显示top或htop中不可用的信息。 尽管顶部显示了某些数据,但Glances是唯一显示有关传感器数据的监视器。 毕竟,有时很高兴看到计算机内部的温度。
可以分别使用d , f , n和s键打开和关闭各个模块,磁盘,文件系统,网络和传感器。 整个侧栏可以使用2切换。 Docker统计信息可以在边栏中显示为D。
请注意,当Glances在虚拟机上运行时,不会显示硬件传感器。
您可以通过按h键获得帮助。 再次按h关闭帮助页面。 “帮助”页面非常简洁,但是确实显示了可用的交互式选项以及如何打开和关闭它们。 简要介绍了启动Glances时可以使用的选项。
您可以按q或Esc退出Glances。
Glances不需要配置文件即可正常工作。 如果选择一个,则配置文件的系统范围实例将位于/etc/glances/glances.conf中 。 单个用户可以在〜/ .config / glances / glances.conf中拥有一个本地实例,它将覆盖全局配置。 这些配置文件的主要目的是为警告和严重警报设置阈值。 您还可以指定默认情况下是否显示某些模块。
文件/usr/local/share/doc/glances/README.rst包含其他有用的信息,包括可以安装以支持某些可选Glances功能的可选Python模块。
Glances提供了命令行选项,使其可以在特定的查看模式下启动。 例如,命令一览-2在禁用左侧边栏的情况下启动程序。
通过在服务器模式下启动它,可以使用Glances监视远程主机:
[ root @ testvm1 ~ ] # glances -s
然后,您可以使用以下命令从客户端连接到服务器:
[ root @ testvm2 ~ ] # glances -c @testvm1
Glances可以显示Glances服务器列表以及它们的活动摘要。 它还具有Web界面,因此您可以从浏览器监视远程Glances服务器。 Glances的最新版本还可以显示Docker统计信息。
还有用于Glances的可插入模块,这些模块提供基本程序中不可用的测量数据。
尽管Glances可以监视主机的许多方面,但是它无法管理进程。 它不能更改进程的有效数目,也不能杀死进程,就像top和htop一样 。 Glances不是交互式工具。 严格用于监视。 诸如kill和renice之类的外部工具可用于管理流程。
概览只能显示在可用空间中占用指定资源的大部分(例如CPU时间)的进程。 如果只列出10个进程,那么您将可以看到全部。 Glances不提供滚动或反向排序选项,这些选项使您可以查看除Top X进程以外的任何进程。
是一种物理学理论,它指出:“仅观察一种情况或现象必然会改变该现象”。 在测量Linux系统性能时也是如此。
仅使用监视工具会更改系统对资源的使用,包括内存和CPU时间。 顶级实用程序和大多数其他监视器可能占用系统CPU时间的2%或3%。 Glances实用程序的影响比其他实用程序大得多。 它通常占用10%到20%的CPU时间,而我已经看到,在具有32个CPU的大型活动系统中,它占用多达40%的一个CPU。 这很多,因此在考虑使用Glances作为监视器时,请考虑其影响。
我个人的看法是,当您需要Glances的功能时,这是一个很小的代价。
尽管它缺乏互动功能,如使用renice的能力或终止进程,它的高CPU负载,我觉得秋波是一个非常有用的工具。 完整的可在Internet上找到,并且Glances手册页包含启动选项和交互式命令信息。
本文的某些部分是基于David Both的新书《 。
翻译自:
glances
转载地址:http://upszd.baihongyu.com/