使用;top";在Linux中作为半永久性工具

使用;top";在Linux中作为半永久性工具,linux,monitor,instrumentation,Linux,Monitor,Instrumentation,在开发运行嵌入式Linux的box时,我试图找到使用“top”作为半永久性工具的最佳方法。(仪器将从最终测试和生产版本中删除。) 我的第一步是简单地将其添加到init.d中: top -b -d 15 >/tmp/toploop.out & 这在“批处理”模式下每15秒运行一次。让我们假设/tmp有足够的空间 问题: 对于一般用途的监控,选择15秒是否合适 除了磁盘空间之外,这对系统状态的影响有多严重 还有什么(也许更好)的工具可以像这样使用 您可能会发现vmstat和iosta

在开发运行嵌入式Linux的box时,我试图找到使用“top”作为半永久性工具的最佳方法。(仪器将从最终测试和生产版本中删除。)

我的第一步是简单地将其添加到init.d中:

top -b -d 15 >/tmp/toploop.out &
这在“批处理”模式下每15秒运行一次。让我们假设/tmp有足够的空间

问题:

  • 对于一般用途的监控,选择15秒是否合适
  • 除了磁盘空间之外,这对系统状态的影响有多严重
  • 还有什么(也许更好)的工具可以像这样使用

  • 您可能会发现vmstat和iostat具有延迟且无重复计数器是一个更好的选择。

    我怀疑15秒就足够了,除非您真的想实时观察正在发生的事情,但这里的情况似乎不是这样

    就负载而言,在运行Ubuntu(不确定是哪个版本,但不超过一年)的闲置PIII 900Mhz w/768MB内存上,我每0.5秒更新一次top,CPU利用率约为2%。在15秒更新时,我看到0.1%的CPU利用率


    根据您的具体需求,您可以使用正常运行时间、免费和ps的输出来获取top的大部分(如果不是全部的话)信息。

    我们用于监控类似的内容

    看看。这是一个非常轻量级的系统监控框架,针对性能进行了编码。

    如果您正在寻找总体负载,正常运行时间可能就足够了。但是,如果您需要有关流程的特定信息,而且您很有冒险精神,并且启用了/proc filesystem,那么您可能需要编写自己的工具。这种环境的主要好处是,您可以专注于您想要的内容,并将引入系统的负载降至最低

    proc文件系统允许应用程序对内核内存进行读取访问,内核内存跟踪许多有趣的变量。从/proc读取是获取此信息的最简单的方法之一。此外,您可以获得比top提供的更多的信息。我过去这样做是为了通过这个过程获得在用户和系统中花费的时间。此外,您可以使用它来获取有关进程打开的文件描述符数量的信息。您还可以使用它来获取有关网络系统如何工作的详细信息


    如果您获得所需的信息,可以使用其他应用程序对这些信息进行预处理。然而,阅读原始信息是相当直接的。执行
    man-proc
    以了解更多信息。

    遗憾的是,您没有说明监视的目的

  • 你应该决定15秒是否合适。如果您愿意,可以随意将其放低(并拥有快速硬盘)
  • 不用担心,除非您运行的是软实时系统
  • 看看其他答案中建议的工具。我将添加另一个建议:“iotop”,用于回答“谁在重击硬盘”的问题

  • 在压力测试期间的系统监控工作中,我们使用一个名为

    我喜欢nmon的地方在于它能够导出到XLS并为您生成漂亮的图形

    它为以下各项生成统计数据:

    • 内存使用
    • CPU使用率
    • 网络使用
    • 磁盘I/O

    祝你好运:)

    +1。是的,我非常熟悉/proc!我本不想写点什么,但你说得对,你可以专注于你想要的东西。好的,我的emacs窗口在哪里。。。