在Linux中使用“top”作为半永久性仪器

时间:2008-10-08 18:27:47

标签: linux monitor instrumentation

我正在努力寻找在运行嵌入式Linux的盒子的开发中使用'top'作为半永久性仪器的最佳方法。 (仪器将从最终测试和生产版本中删除。)

我的第一步是将其添加到init.d:

top -b -d 15 >/tmp/toploop.out &

每15秒以“批处理”模式运行一次。我们假设/ tmp有足够的空间......

问题:

  1. 15秒是否适合进行通用监控?
  2. 除了磁盘空间之外,这会严重影响系统的状态吗?
  3. 还可以使用其他(也许更好)的工具吗?

7 个答案:

答案 0 :(得分:5)

看看collectd。它是一个非常轻量级的系统监控框架,用于表现性能。

答案 1 :(得分:2)

我们使用sysstat来监控这样的事情。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

我怀疑15秒是不够的,除非你真的想要实时观察发生的事情,但这似乎并非如此。

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

取决于你想要什么,你可以使用正常运行时间,免费和ps的输出来获得大部分(如果不是全部)top信息。

答案 4 :(得分:1)

如果您正在寻找整体负载,正常运行时间就足够了。但是,如果您需要有关进程的特定信息,那么您是冒险的,并且启用了/ proc文件系统,您可能需要编写自己的工具。此环境的主要好处是您可以专注于您想要的内容并最大限度地减少引入系统的负载。

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

大部分信息都是由其他应用程序预处理的,如果您获得所需信息,可以使用这些信息。但是,阅读原始信息非常简单。请输入man proc以获取更多信息。

答案 5 :(得分:1)

可惜你还没有说出你在监视什么。

  1. 你应该决定15秒是否合适。如果你愿意,可以随意降低(并有一个快速硬盘驱动器)
  2. 除非您运行的是软实时系统,否则不用担心。
  3. 查看其他答案中建议的工具。我将添加另一个消息:“iotop”,用于回答“谁正在颠覆硬盘”问题。

答案 6 :(得分:1)

在压力测试期间进行系统监控时,我们使用名为nmon的工具。

我对nmon的喜爱是它能够导出到XLS并为您生成漂亮的图形。

它生成以下内容的统计信息:

  • 内存使用
  • CPU使用率
  • 网络使用
  • 磁盘I / O
祝你好运:)