linux 邮件开源工具_4个用于Linux系统监视的开源工具

linux 邮件开源工具

信息是解决任何计算机问题(包括与Linux及其运行硬件有关的问题或与之有关的问题)的关键。 尽管默认情况下并未全部安装,但大多数发行版中都包含许多可用工具。 这些工具可用于获取大量信息。

本文讨论了一些交互式命令行界面(CLI)工具,它们随Red Hat相关发行版(包括Red Hat Enterprise Linux,Fedora,CentOS和其他派生发行版)一起提供或可以轻松安装。 尽管有可用的GUI工具,并且它们提供了很好的信息,但是CLI工具提供了所有相同的信息,并且它们始终可用,因为许多服务器没有GUI界面,但是所有Linux系统都有命令行界面。

本文重点介绍我通常使用的工具。 如果我没有涵盖您最喜欢的工具,请原谅我,并在评论部分让我们所有人知道您使用什么工具以及原因。

在Linux环境中,我用来确定问题的工具几乎总是系统监视工具。 对我来说,这些是顶部,顶部,顶部和顶部。

所有这些工具都监视CPU和内存使用情况,并且大多数工具至少列出了有关正在运行的进程的信息。 有些人还监视Linux系统的其他方面。 所有这些都提供系统活动的近实时视图。

平均负载

在继续讨论监视工具之前,更详细地讨论平均负载非常重要。

平均负载是衡量CPU使用率的重要标准,但是当我说1(或5或10)分钟的平均负载为4.04时,这实际上意味着什么? 平均负载可以视为对CPU需求的度量; 它是代表等待CPU时间的平均指令数的数字。 因此,这是对CPU性能的真实衡量,这与标准的“ CPU百分比”不同,在标准的“ CPU百分比”中,I / O等待时间不起作用。

例如,一个充分利用的单处理器系统CPU的平均负载为1。这意味着CPU完全可以满足需求。 换句话说,它具有完美的利用率。 平均负载小于1表示CPU使用率不足,平均负载大于1表示CPU使用率过高,并且有被压抑的需求未得到满足。 例如,单个CPU系统中的平均负载为1.5,表示三分之一的CPU指令被迫等待执行,直到它之前的一条指令完成为止。

对于多个处理器也是如此。 如果一个4 CPU系统的平均负载为4,则它具有完美的利用率。 例如,如果平均负载为3.24,则将充分利用其三个处理器,而其中一个处理器的利用率约为76%。 在上面的示例中,一个4 CPU系统的1分钟平均负载为4.04,这意味着这4个CPU之间没有剩余容量,并且不得不等待一些指令。 完美利用的4 CPU系统的平均负载为4.00,因此示例中的系统已满载,但未过载。

平均负载的最佳条件是使其等于系统中CPU的总数。 这意味着每个CPU都被充分利用,而不必强制任何指令等待。 长期平均负载可提供总体利用率趋势的指示。

Linux Journal在2006年12月1日发行的优秀文章中描述了平均负载,它们背后的理论和数学以及如何解释它们。

讯号

此处讨论的所有监视器都允许您将信号发送到正在运行的进程。 尽管其中一些信号可以由接收程序使用信号处理程序定义,但每个信号都有特定的功能。

单独的kill命令还可以用于向监视器外部的进程发送信号。 kill -l可用于列出所有可能发送的信号。 这些信号中的三个可用于终止进程。

  • SIGTERM(15):信号15,SIGTERM是top信号,当按下k键时,其他显示器监视的默认信号。 由于程序必须内置有信号处理程序,因此它的效率也可能最低。 程序的信号处理程序必须拦截传入的信号并采取相应的措施。 因此,对于大多数没有信号处理程序的脚本,SIGTERM被忽略。 SIGTERM背后的想法是,只需告诉程序您希望它自己终止,它就可以利用它并清理打开的文件之类的东西,然后以一种可控制的,很好的方式终止它。
  • SIGKILL(9): Signal 9,SIGKILL提供了一种甚至杀死最顽强程序的方法,包括脚本和其他没有信号处理程序的程序。 但是,对于没有信号处理程序的脚本和其他程序,它不仅会杀死正在运行的脚本,而且还会杀死正在运行该脚本的Shell会话。 这可能不是您想要的行为。 如果您想终止某个进程而又不在乎变得很好,这就是您想要的信号。 该信号不能被程序代码中的信号处理程序拦截。
  • SIGINT(2):信号2,当SIGTERM无法工作并且您希望程序更好地终止时,例如,在不终止正在运行该程序的Shell会话的情况下,可以使用SIGINT。 SIGINT向运行程序的会话发送中断。 这等效于使用Ctrl-C组合键终止正在运行的程序,尤其是脚本。

要对此进行试验,请打开一个终端会话,并在/ tmp中创建一个名为cpuHog的文件,并使其具有权限rwxr_xr_x可执行。 将以下内容添加到文件中。


#!/bin/bash
# This little program is a cpu hog
X=0;while [ 1 ];do echo $X;X=$((X+1));done

在不同的窗口中打开另一个终端会话,它们彼此相邻的位置,这样你就可以在观看新一届的结果和运行顶部 。 使用以下命令运行cpuHog程序:


/ tmp /cpuHog

该程序简单地加一,然后将X的当前值打印到STDOUT。 而且它消耗CPU周期。 运行cpuHog的终端会话的顶部应该显示很高的CPU使用率。 首先观察这对系统性能的影响。 CPU使用率应立即上升,平均负载也应随时间开始增加。 如果需要,您可以打开其他终端会话并在其中启动cpuHog程序,以便运行多个实例。

确定要杀死的cpuHog程序的PID。 按k键,然后查看摘要部分底部“交换”行下的消息。 顶部询问您要终止的进程的PID。 输入该PID,然后按Enter 。 现在top询问信号编号并显示默认值15。尝试此处所述的每个信号并观察结果。

4个用于Linux系统监视的开源工具

最佳

当执行问题确定时,我使用的第一个工具是top 。 我喜欢它,因为它已经存在很长时间 ,并且在其他工具可能未安装的情况下始终可用。

顶层程序是一个非常强大的实用程序,可提供有关正在运行的系统的大量信息。 其中包括有关内存使用情况,CPU负载的数据,以及正在运行的进程的列表,其中包括每个进程占用的CPU时间和内存。 Top几乎实时显示系统信息,默认每三秒钟更新一次(默认情况下)。 小数秒是允许的,尽管很小的值会给系统带来很大的负担。 它也是交互式的,可以修改要显示的数据列和排序列。

顶部程序的示例输出如下图1所示。 从顶部开始的输出分为两个部分,分别称为“摘要”部分(即输出的顶部)和“过程”部分(即输出的下部)。 为了保持一致性,我将在顶部,顶部,顶部和顶部使用此术语。

顶层程序具有许多有用的交互式命令,可用于管理数据显示和操纵各个过程。 使用h命令可查看各种交互式命令的简要帮助页面。 确保按两次h来查看帮助的两个页面。 使用q命令退出。

摘要部分

顶部输出的摘要部分是系统状态的概述。 第一行显示系统正常运行时间以及1、5和15分钟的平均负载。 在下面的示例中,平均负载分别为4.04、4.17和4.06。

第二行显示当前活动的进程数及其状态。

接下来显示包含CPU统计信息的行。 如下面的示例所示,可以有一行合并系统中所有CPU的统计信息,或者每个CPU有一行。 对于示例使用的计算机,这是一个四核CPU。 按1键可在CPU使用率的合并显示和单个CPU的显示之间切换。 这些行中的数据显示为可用总CPU时间的百分比。

CPU数据的这些和其他字段如下所述。

  • us:用户空间–在用户空间(即不在内核中)中运行的应用程序和其他程序。
  • sy:系统调用–内核级功能。 这不包括内核本身占用的CPU时间,仅包括内核系统调用。
  • ni:nice –处于良好状态的进程。
  • id:空闲–空闲时间,即任何正在运行的进程未使用的时间。
  • wa:wait –等待I / O发生的CPU周期。 这浪费了CPU时间。
  • 嗨:硬件中断–用于处理硬件中断的CPU周期。
  • si:软件中断– CPU周期用于处理软件创建的中断,例如系统调用。
  • st:窃取时间–虚拟机管理程序为另一个虚拟处理器提供服务时,虚拟CPU等待实际CPU的CPU周期百分比。

摘要部分的最后两行是内存使用情况。 它们显示了物理内存使用情况,包括RAM和交换空间。

Figure 1: The top command showing a fully utilized 4-core CPU.

图1:最上面的命令显示了一个充分利用的4核CPU。

您可以使用1命令将CPU统计信息显示为单个全局编号(如上图1所示),也可以按单个CPU显示。 l命令打开和关闭平均负载。 tm命令分别通过关闭,仅文本和几种条形图格式来旋转摘要部分的进程/ CPU和内存行。

处理部分

从顶部开始的输出的“进程”部分列出了系统中正在运行的进程-至少针对终端显示屏上有空间的进程数。 顶部显示的默认列如下所述。 还可以使用其他几列,并且通常可以通过单个击键添加每列。 有关详细信息,请参见首页。

  • PID –进程ID。
  • USER –流程所有者的用户名。
  • PR –流程的优先级。
  • NI –很好的过程。
  • VIRT –分配给进程的虚拟内存总量。
  • RES –进程消耗的未交换物理内存的居民大小(除非另有说明,以kb为单位)。
  • SHR –进程使用的共享内存量(以kb为单位)。
  • S –进程状态。 可以是R(代表跑步),S(代表睡觉)和Z(代表僵尸)。 较不常见的状态可以为T表示跟踪或停止,而D表示不间断的睡眠。
  • %CPU – CPU周期百分比,或上次测量的时间段内此进程使用的时间。
  • %MEM –进程使用的物理系统内存的百分比。
  • TIME + –自进程启动以来,该进程占用的CPU总时间为百分之一秒。
  • COMMAND –这是用于启动进程的命令。

使用Page UpPage Down键滚动浏览正在运行的进程列表。 ds命令是可互换的,可用于设置两次更新之间的延迟间隔。 默认值为三秒,但我希望间隔为一秒。 间隔粒度可以低至十分之一(0.1)秒,但这会消耗您要测量的更多CPU周期。

您可以使用<>键在左侧或右侧对排序列进行排序。

使用k命令杀死进程,或者使用r命令取消进程。 您必须知道要杀死或破坏的进程的进程ID(PID),并且该信息将显示在顶部显示屏的进程部分中。 在终止进程时,top首先询问PID,然后要求用于终止进程的信号号。 输入它们,然后在每一个之后按Enter键。 从信号15 SIGTERM开始,如果没有终止该进程,请使用9 SIGKILL。

组态

如果更改顶部显示,则可以使用W (大写)命令将更改写入配置文件〜/ .toprc在主目录中。


在顶上

我也喜欢上面。 当您需要有关该类型的I / O活动的更多详细信息时,它是一种出色的监视器。 默认的刷新间隔是10秒,但是可以使用interval i命令将其更改为适合您尝试执行的操作。 atop不能像top一样在亚秒间隔内刷新。

使用h命令显示帮助。 请确保注意到有多页帮助,您可以使用空格键向下滚动以查看其余内容。

atop的一个不错的功能是它可以将原始性能数据保存到文件中,然后再播放以进行仔细检查。 这对于跟踪偶发性问题非常方便,尤其是在您无法直接监视系统时发生的问题。 atopsar程序用于播放保存文件中的数据。

Figure 2: The atop system monitor provides information about disk and network activity in addition to CPU and process data.

图2:顶层系统监视器除了提供CPU和进程数据外,还提供有关磁盘和网络活动的信息。

摘要部分

atop与top包含许多相同的信息,但还显示有关网络,原始磁盘和逻辑卷活动的信息。 上面的图2在显示屏顶部的列中显示了这些附加数据。 请注意,如果您拥有水平屏幕的不动产以支持更宽的显示范围,则会显示其他列。 相反,如果水平宽度较小,则显示的列会更少。 我还喜欢在上方显示当前的CPU频率和比例因子(在其他任何显示器上我都没有看到的东西),位于图2最右两列的第二行。

处理部分

进程顶部显示的内容与顶部相同,但是还包括每个进程的磁盘I / O信息和线程数,以及每个进程的虚拟和实际内存增长统计信息。 与“摘要”部分一样,如果有足够的水平屏幕空间,则会显示其他列。 例如,在图2中,显示了流程所有者的RUID(真实用户ID)。 展开显示还将显示EUID(有效用户ID),这在程序运行SUID(设置用户ID)时可能很重要。

atop还可以提供有关磁盘,内存,网络的详细信息,以及每个进程的调度信息。 只需分别按dmns键即可查看该数据。 g键将显示返回到通用过程显示。

通过使用C对CPU使用情况进行排序, M对内存使用情况, D对磁盘使用情况, N对网络使用情况以及A对自动排序,可以很容易地完成排序。 自动排序通常按最繁忙的资源对进程进行排序。 仅在安装和加载了netatop内核模块的情况下,才能对网络使用情况进行排序。

您可以使用k键终止进程,但是没有选择来取消进程。

默认情况下,不显示在给定时间间隔内没有活动的网络和磁盘设备。 这可能会导致对主机硬件配置的错误假设。 f命令可用于强制在顶部显示空闲资源。

组态

顶层手册页涉及全局和用户级别的配置文件,但是在我自己的Fedora或CentOS安装中找不到。 也没有命令保存修改后的配置,并且在程序终止时不会自动进行保存。 因此,现在似乎存在使配置更改永久生效的方法。


停止

htop程序非常类似于top, 但适用于类固醇 。 它看起来确实很像top,但是它也提供了top不具备的一些功能。 但是,与atop不同,它不提供任何类型的任何磁盘,网络或I / O信息。


Figure 3: htop has nice bar charts to to indicate resource usage and it can show the process tree.

图3:htop具有漂亮的条形图以指示资源使用情况,并且可以显示流程树。

摘要部分

htop的摘要部分显示在两列中。 它非常灵活,可以按照您喜欢的任何顺序配置几种不同类型的信息。 尽管可以在组合显示和显示每个CPU一个条形图的显示之间切换top和atop的CPU使用率部分,但是htop不能。 因此,对于CPU显示,它具有许多不同的选项,包括单个组合栏,每个CPU的栏以及各种组合,在这些组合中,可以将特定CPU组合为一个栏。

我认为这是比其他一些系统监视器更简洁的摘要显示,并且更易于阅读。 该摘要部分的缺点在于,htop中没有其他监视器中可用的某些信息,例如按用户,空闲和系统时间显示的CPU百分比。

F2 (设置)键用于配置htop的摘要部分。 显示可用数据的列表,您可以使用功能键将其添加到左列或右列,以及在所选列中上下移动它们。

处理部分

htop的处理部分与top的处理部分非常相似。 与其他监视器一样,可以按以下几种因素对进程进行排序,包括CPU或内存使用率,用户或PID。 请注意,选择树状视图时无法进行排序。

F6键可让您选择排序列。 它显示可用于排序的列的列表,然后选择所需的列,然后按Enter键。

您可以使用向上和向下箭头键选择一个过程。 要取消进程,请使用向上和向下箭头键选择目标进程,然后按k键。 选择了15 SIGTERM后,将显示要发送该过程的信号列表。 如果与SIGTERM不同,则可以指定要使用的信号。 您也可以使用F7F8键重新进入所选过程。

我特别喜欢的一个命令是F5 ,它以树格式显示正在运行的进程,从而可以轻松确定正在运行的进程的父/子关系。

组态

每个用户都有自己的配置文件〜/ .config / htop / htoprc,对htop配置的更改会自动存储在该文件中。 没有用于htop的全局配置文件。


一眼

我最近才了解到扫视功能,它可以显示比我目前所熟悉的任何其他显示器更多的有关您的计算机的信息。 这包括磁盘和网络I / O,可以显示CPU和其他硬件温度以及风扇速度的热读数,以及按硬件设备和逻辑卷显示的磁盘使用情况。

拥有所有这些信息的缺点是,乍一看本身就使用了大量的CPU资源。 在我的系统上,我发现它可以使用大约10%到18%的CPU周期。 太多了,因此在选择显示器时应该考虑到这种影响。

摘要部分

概览的摘要部分包含与其他监视器的摘要部分相同的大多数信息。 如果您有足够的水平屏幕空间,则可以同时显示条形图和数字指示器,以显示CPU使用率,否则将仅显示数字。

Figure 4: The glances interface with network, disk, filesystem, and sensor information.

图4:带有网络,磁盘,文件系统和传感器信息的一览界面。

我比其他监视器更喜欢此摘要部分。 我认为它以易于理解的格式提供了正确的信息。 与top和htop一样,您可以按1键在单个CPU内核的显示之间切换,或者在所有CPU内核作为单个平均值的全局显示之间切换,如上面的图4所示。

处理部分

进程部分显示有关每个正在运行的进程的标准信息。 过程可以自动排序 ,或由CPU C,存储器M,名称P,用户u,I / O速率i或时间t。 自动排序时,将首先按使用最多的资源对进程进行排序。

一览表还在屏幕的最底部显示警告和严重警报,包括事件的时间和持续时间。 当您无法一次凝视屏幕几个小时时,尝试诊断问题时,这将很有帮助。 可以使用l命令打开或关闭这些警报日志,可以使用w命令清除警告,而可以使用x清除警报和警告。

有趣的是,扫视是这些监视器中唯一不能用于杀死或破坏进程的监视器。 严格用作监视器。 您可以使用外部killrenice命令来操纵进程。

侧边栏

Glances有一个非常漂亮的侧栏,它显示top或htop中不可用的信息。 Atop确实显示了其中一些数据,但是扫视是唯一显示传感器数据的监视器。 有时很高兴看到计算机内部的温度。 可以分别使用dfns命令打开和关闭各个模块,磁盘,文件系统,网络和传感器。 整个侧栏可以使用2切换。

Docker统计信息可以显示为D。

组态

Glances不需要配置文件即可正常工作。 如果选择一个,则配置文件的系统范围实例将位于/etc/glances/glances.conf中。 单个用户可以在〜/ .config / glances / glances.conf中拥有一个本地实例,该实例将覆盖全局配置。 这些配置文件的主要目的是为警告和严重警报设置阈值。 我无法永久更改其他配置(例如侧边栏模块或CPU显示器)。 看来您每次开始浏览时都必须重新配置这些项目。

有一个文档/usr/share/doc/glances/glances-doc.html,该文档提供了有关使用一览表的大量信息,并且它明确指出可以使用配置文件来配置显示哪些模块。 但是,所提供的信息和示例均未描述该操作。


结论

请确保阅读每个监视器的手册页,因为有关配置和交互它们的信息很多。 也可以在交互模式下使用h键寻求帮助。 此帮助可以为您提供有关选择和排序数据列,设置更新间隔等信息。

当您寻找问题的原因时,这些程序可以告诉您很多信息。 它们可以告诉您何时一个进程以及哪个进程在消耗CPU时间,是否有足够的可用内存,在等待I / O(例如磁盘或网络访问)完成时进程是否停滞等等。

我强烈建议您在这些监视程序在正常运行的系统上运行时花些时间监视它们,以便在寻找问题原因时,可以区分那些可能异常的情况。

您还应该意识到,使用这些监视工具的行为会改变系统对资源的使用,包括内存和CPU时间。 顶部,并且大多数此类监视器可能占用系统CPU时间的2%或3%。 扫视的影响要大得多,并且可以占用10%到20%的CPU时间。 选择工具时请务必考虑这一点。

我原本打算在本文中包括SAR(系统活动报告程序),但是随着本文的增长,我也很清楚SAR与这些监视工具有很大的不同,因此应该另辟article径。 因此,考虑到这一点,我打算写一篇有关SAR和/ proc文件系统的文章,以及有关如何使用所有这些工具查找和解决问题的第三篇文章。

翻译自: https://opensource.com/life/16/2/open-source-tools-system-monitoring

linux 邮件开源工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值