【问题标题】:What is the best way to measure "spare" CPU time on a Linux based system在基于 Linux 的系统上测量“空闲”CPU 时间的最佳方法是什么
【发布时间】:2025-12-21 01:10:12
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: cpu performance


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            最近更新 更多