4

对于我们为其开发软件的一些客户,我们需要“保证”一定数量的备用资源(内存、磁盘空间、CPU)。内存和磁盘空间很简单,但 CPU 有点困难。

我们使用的一种技术是创建一个消耗有保证的 CPU 时间的进程(比如每 5 秒消耗 2.5 秒)。我们以最高优先级运行此进程,以确保它运行并消耗所有所需的 CPU 周期。

如果我们的正常应用程序能够以可接受的性能水平运行,并且可以在空闲时间进程也在运行时通过其所有功能测试,那么我们“假设”我们已经履行了对空闲 CPU 时间的承诺。

我确信还有其他技术可以做同样的事情,并且想了解它们。

4

4 回答 4

2

所以这可能不是您正在寻找的答案,但是如果您要做的只是确保您的应用程序不超过资源消耗的某些限制并且您在 linux 上运行,您可以自定义 /etc/security/ limits.con(可能是您选择的发行版上的不同文件)以强制限制特定用户并仅在该用户下运行该进程。这当然是假设您对客户的生产环境具有该级别的控制权。

于 2008-09-25T03:42:55.267 回答
2

如果我理解正确,您关心的是应用程序是否也在运行,而给定百分比的处理能力不可用。

最无可争议的方法是使用动力不足的硬件进行测试。如果您的设置中的处理器允许您这样做,您可以在线对其进行降频。Linux 内核为您提供了一个简单的界面来执行此操作,请参阅/sys/devices/system/cpu/cpu0/cpufreq/. 还有一堆可用的 GUI 应用程序。

如果您的处理器无法在线更改时钟速度,您可以通过艰难的方式来做,并在您的 BIOS 中选择一个较小的倍频器。

我想你应该已经明白了。如果它以 1600 Mhz 而不是 2400 Mhz 运行,则可以保证 33% 的空闲 CPU 时间。

于 2008-09-25T04:03:18.120 回答
1

SAR 是一个标准的 *nix 进程,它收集有关系统资源的操作使用的信息。它还有一个命令行工具,可让您创建各种报告,并且将数据持久保存在数据库中是很常见的。

于 2008-09-25T03:38:58.710 回答
0

借助多核/处理器系统,您可以利用 Affinity。

于 2008-09-25T03:38:05.670 回答