【发布时间】:2012-08-14 06:17:37
【问题描述】:
我目前正在开发一个小型内部测试应用程序,以在计算机上创建多种类型的负载,以便我们了解我们的软件在负载下的工作方式。我被一个请求挂断了,因为在用户运行程序之前我做了某种方式来指定 CPU 的使用百分比(比如 40%),这将有望将 cpu 保持在一个范围内 +-他们投入的 10%。有人告诉我,他们以前见过这样的程序,但我见过的每一个声称这样做的程序都不起作用。我正在尝试读取平均使用情况并让正在运行的线程休眠,以降低 CPU 使用率,但我发现这并不准确。它也将用于多台服务器,每台服务器都有不同的 CPU,所以我不能做太多的硬编码,因为它需要在每台服务器上工作。我个人认为不可能准确地做到这一点,但我在这里作为最后的努力询问是否有其他人遇到过类似的软件,并且知道它会如何编写。
编辑:我曾尝试使用较低优先级的线程,但也被告知这对他们没有用处(尽管在要求我这样做之前,我已经创建了仅用于测试目的的选项)。
【问题讨论】:
-
我不知道有什么方法可以限制您可以消耗多少 CPU 功率,即操作系统的任务,确定调度;除了限制它可以使用的核心数量。你可以做的是改变进程的优先级,我也打算提到休眠它,但你已经注意到这是一个不完美的解决方案。
标签: c# testing cpu throttling