对于我们开发软件的一些客户,我们需要“保证”一定数量的备用资源(内存,磁盘空间,CPU)。内存和磁盘空间很简单,但CPU有点困难。
我们使用的一种技术是创建一个消耗有保证的CPU时间(例如每5秒2.5秒)的进程。我们以最高优先级运行此进程,以确保它运行并消耗所有必需的CPU周期。
如果我们的普通应用程序能够以可接受的性能水平运行并且可以在备用时间进程运行时通过所有功能测试,那么我们“假设”我们已经履行了对备用CPU时间的承诺
我确信还有其他技术可以做同样的事情,并希望了解它们。
答案 0 :(得分:2)
所以这可能不是您正在寻找的答案,但如果你想要做的就是确保你的应用程序没有超过某些资源消耗限制并且你在linux上运行你可以自定义/ etc /security/limits.con(可能是您选择的发行版上的不同文件)强制限制特定用户并仅在该用户下运行该进程。这当然是假设您对客户的生产环境具有这种级别的控制。
答案 1 :(得分:2)
如果我理解正确的话,你关心的是应用程序运行的同时还没有给定百分比的处理能力。
最无可争议的方法是使用功率不足的硬件进行测试。如果您的设置中的处理器允许,您可以在线降频。 Linux内核为您提供了一个简单的界面,请参阅/sys/devices/system/cpu/cpu0/cpufreq/
。还有一堆GUI应用程序可用。
如果您的处理器无法在线更改时钟速度,您可以通过硬盘操作并在BIOS中选择较小的倍频器。
我想你明白了。如果它以1600 Mhz而不是2400 Mhz运行,则可以保证33%的备用CPU时间。
答案 2 :(得分:1)
SAR是一个标准的* nix流程,用于收集有关系统资源运营使用情况的信息。它还有一个命令行工具,允许您创建各种报告,数据通常保存在数据库中。
答案 3 :(得分:0)
使用多核/处理器系统,您可以将Affinity用于您的优势。