0

我正在为我的大学课程编写一个分布式、嵌入式、多主/从应用程序,作为其中的一部分,我需要一种方法来实时确定每个系统的 CPU 速度、CPU 使用率和可用内存,而无需分别使用大量内存cpu消耗,为了自动调整网络和设备的配置。

定期触发系统调用或读取文件(open-read-close ....)并不真正构成对资源友好的选项。我确定必须有一些符合POSIX的解决方案来解决这个问题?

这些系统都将使用Linux作为操作系统,我应该专门使用 LGPL 或 BSD库来发布。

到目前为止,我还没有找到任何符合标准的解决方案。

有任何想法吗?

4

5 回答 5

3

您可以使用libprocps. 尽管许多网页都说它是 GPL,但它是 LGPL。查看提交日志

于 2012-08-17T10:13:25.617 回答
1

以下是一些可以引导您找到解决方案的提示:

1-内核信息

2-您可以在/proc/cpuinfo. 谷歌的“Proc 文件系统”。

3-提取系统信息

4- 另一个在这里可能有帮助的 StackOverflow 主题

从那我认为你可以引导自己找到解决方案。

于 2012-08-17T09:42:45.567 回答
0

hwloc可能是您正在搜索的内容。它是开源的,看起来它甚至支持多个平台。

于 2012-08-17T11:22:54.427 回答
0

您需要执行三个步骤:

1) 使用 system() 或 popen() 从您的程序调用 shell 命令或实用程序。(参考:这个

2) 从此列表中决定一个实用程序,以生成利用率数据。

3)从程序中捕获这些数据并解析它以收集相关信息。

于 2012-08-17T11:00:33.667 回答
0

我以前必须做这样的事情,我的解决方案是为系统文件 /proc/cpuinfo 和 /proc/meminfo 编写一个文件解析器,但我不知道它的可移植性如何(适用于 Ubuntu 和 Scientific Linux我)。

于 2012-08-17T09:47:22.753 回答