如何在Windows上产生较高的CPU负载?


76

为了进行测试,我需要在Windows Server 2003上产生较高的CPU负载。我无法安装任何软件,但必须使用Windows提供的软件。

实现这一目标的最佳方法是什么?


4
我通常只是使用启动一堆cmd.exe实例dir /s C:。一次运行10个左右的CPU,除了大量的磁盘I / O,CPU使用率也很高(在i7-2600k的所有内核中占70%以上)。虽然不完美,但可以完成工作。
安德鲁·兰伯特

Answers:


67

consume.exeWindows Server 2003的资源工具包可以很容易地做到这一点。

C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\x64>consume -cpu-time -time 5
Consume: Message: Time out after 5 seconds.
Consume: Message: Successfully assigned process to a job object.
Consume: Message: Attempting to start 256 threads ...
................................................................................
................................................................................
................................................................................
................
Consume: Message: Sleeping...

只要运行,就会在所有内核上使用100%的CPU时间。它还可能消耗其他资源(顾名思义)。


20
默认情况下未安装Resource Toolkit。
HaydnWVN 2012年

那2008服务器呢?
乔纳森·里欧

@JonathanRioux:相同的解决方案,下载答案中链接的资源工具包并使用consume.exe。默认情况下,该应用程序不包含在任何版本的Windows Server中。
Der Hochstapler

consume.exe也可用于使用消耗所有的磁盘空间consume -disk-space -time 60。这是一个非常方便的工具!作为Resource Toolkit的一部分进行安装时C:\Program Files (x86)\Windows Resource Kits\Tools,默认情况下将其安装。
Benny Neugebauer

不错的工具,但是请注意,即使EXE本身是在“低于正常”下启动的,它也总是以正常优先级启动其线程。
EM0

39

以下批处理文件可以执行此操作:

@echo off
:loop
goto loop

但是,如果您有多个核心,那么您将启动多个实例。

要停止,请在控制台中按Ctrl+ C


那太完美了。每个内核仅执行一次。最佳解决方案仍然很简单。谢谢。但是,我不知道如何检查n个内核而不关注第一个循环实例%,因为我有物理和内核,但在Windows7上没有线程计数器。(wmic cpu get NumberOfCores将为2,我有4个线程,2个内核)。我猜测是要创建一个完全适合100%CPU容量的自动批处理。最好的祝福。
erm3nda 2015年

34

IntelBurnTestPrime95就是这样做的。它们实际上并不需要安装,因为可以通过解压缩各自的zip来运行它们,但是它不能满足您的“必须是本机”要求。我是一个超频者,这些是我用来确保绝对系统稳定性的工具,它们将为您的计算机带来最大的负载。

至于您希望它是本机软件的一部分-Windows实际上并没有提供执行此操作的工具,除了上面的批处理文件外,如果将其打包,它将变得一团糟。(无限循环可能会很混乱。)


1
As for your want for it to be a native piece of software - windows doesn't really come with the tools to do such a thing但这是问题的要求。您建议的工具不合适,因此应该是注释,而不是答案。except for maybe the above batch file, which is going to be a mess to handle if it goes haywire. (Infinite loops can be messy几乎不。Windows包含几个编程选项,可以很容易地使它们消耗CPU周期,同时仍然提供控制。
Synetech 2014年

29

没有I / O的VBS中的紧密循环可以做到这一点。您将需要与核心一样多的进程。以下将在Win2k3 VM上使用100%,在双核主机上使用50%(如果我启动2,则使用100%)

c:\test\>copy con thing.vbs
While True
Wend
^z
c:\test\>thing.vbs

您必须在任务管理器中杀死wscript.exe才能结束它。


我真的不明白您输入的代码。您在测试之前测试过吗?我该如何测试。您没有提供太多信息。我喜欢这种方式,但请解释一下。没有懒惰奖。
erm3nda 2015年

那就是创建脚本并运行它的输出。
mgjk 2015年

脚本在哪里?
erm3nda 2015年

这是第2行和第3行
。– mgjk

对不起,这不是vbs的蝙蝠。我失败了 此wscript恰好需要1个线程。您需要运行多个实例,例如bat:goto脚本。这是vbs的对应部分。真好 谢谢。
erm3nda 2015年

9

CPUSTRES.EXE

1996年有一个旧的SysInternals工具,称为“ CPU Stress”,它仍然有效。(我只是在Windows 10笔记本电脑上尝试过。)

自定义CPU负载

它基于GUI,可以自定义强度运行多达四个线程。这使您可以调整所需的CPU负载。根据经验:Activity设置为的一个线程Maximum将消耗大约25%的CPU。举个例子:如果以最大速度运行三​​个线程,则CPU负载将达到75%左右。

随身携带

CPUSTRES.EXE是可移植的下载,不需要安装。


微软也建议使用CPUSTRES.EXE:blogs.msdn.microsoft.com/vijaysk/2012/10/26/…-很好的工具!
Benny Neugebauer 2015年

这是一个很好的工具,但是不幸的是只允许启动4个线程,这不足以使现代处理器(带超线程的四核)最大化。
EM0

5

无需安装HyperPi(在多个内核上运行SuperPi的GUI)即可运行,而无需将其复制到服务器并从任何位置运行。即使速度很快,您也可以在几个小时内加载所有内核,例如进行16个同步的32M位置计算。


1
HyperPi (GUI to run SuperPi on multiple cores) can be run without installing just copy it to the server and run it from any location.那是技术性和无耻的行为。当有人说“无法安装任何东西”时,这并不一定意味着实际安装,他们可能无法运行任何东西。例如,可能存在阻止所有程序的系统策略,除了白名单上的程序。那会阻止甚至“便携式”应用程序运行,因此说不必安装它是行不通的。
Synetech 2014年

4

for /l %a in (0,0,1) do echo a在命令提示符下运行(无限循环打印a)具有观察到的效果,即conhost.exe在低端移动i5上的Windows 7上以10%至20%CPU负载启动运行。您可以尝试并行运行其中的几个,例如批处理文件中的以下内容:

start for /l %%a in (0,0,1) do echo a
start for /l %%a in (0,0,1) do echo a
start for /l %%a in (0,0,1) do echo a
start for /l %%a in (0,0,1) do echo a
start for /l %%a in (0,0,1) do echo a
start for /l %%a in (0,0,1) do echo a
start for /l %%a in (0,0,1) do echo a
start for /l %%a in (0,0,1) do echo a
start for /l %%a in (0,0,1) do echo a
start for /l %%a in (0,0,1) do echo a

那可能会使您的CPU运行100%。可以添加/删除行以进行调整。
警告:这些是无限循环,您可能无法关闭它们。括号内的数字可以替换,例如(0,1,10000)用于有限循环。可以调整最后一个数字(在有限循环中)以调整运行时间。如果您想知道,它的基本含义是“从数字0开始,以1递增直到达到10000”,这意味着10000个循环周期。


你测试过了吗?这是受IO限制的,因此无论您启动多少实例,我都认为CPU利用率可能不会达到100%。
本·理查兹

1
它很可能取决于系统。对我而言,总人数始终保持在97%以上,尽管占dwm.exe25%,所有主持人都徘徊在5-10%左右。无论如何,mgjk的vbscript解决方案更加优雅。
鲍勃

在泛滥控制台时,Windows控制台异常缓慢。它还会导致显着的GUI延迟,这可能使您无法使用任务管理器将其杀死。请注意,由于数据已用完,Ctrl-C或Ctrl-Break无效。
2012年

4

我最近发现了,可以推荐免费版本的HeavyLoad:

http://www.jam-software.com/heavyload/

在提高CPU级别方面做得有效,以了解应用程序如何在压力下应对。


就像他们说的那样:can’t install/run any third-party software; only built into Windows
Synetech 2014年

我发现该程序非常有趣。它很简单,您还可以仅使用256Mb的ram来获得100%的CPU(我在i5 4gb ram上做过参考)。我唯一想念的选择是该软件所承诺的GPU压力。@AndyUK,您找到了这个选项吗?
erm3nda 2015年


1

如果您没有用于该PC的互联网或不记得该CPU测试的网站,并且您不喜欢编写脚本,则可以使用内置zip功能的Windows来同时压缩一堆文件或文件夹。

用鼠标右键单击文件或文件夹,指向“发送​​到”,然后单击“压缩(压缩)文件夹”。

您可以一次执行多次相同的文件/文件夹,建议使用Windows或Program Files文件夹。

然后,您可以将文件解压缩到另一个位置,并与fc命令进行比较以检查所有计算是否正确进行。尽管我建议您为此使用一个大文件,因为使用标准Windows工具对许多文件进行文件比较的命令语法很烦人。


印象深刻。蝙蝠上的:goto循环听起来非常容易。并且避免废话I / O使用。
erm3nda 2015年

1

快速,轻松,PowerShell

while ($true){}

没有输入或输出的无限循环;与昆腾的答案类似,如果您有多个内核,则必须启动运行该脚本的PowerShell的多个实例


0

使用内置的“ calc”来计算10000!(10000阶乘)。使用两个或三个实例来最大化多核。


实际上,它会溢出钙....还有就是钙会计算一个最大值,它小于10000但比1000
迪奥戈

@DiogoRocha没有溢出:我收到2.8462596809170545189064132121199e + 35659。但是,它在我的计算机上不到一秒钟就完成了。
量子

嗯。我的确发生了溢出,实际上是将数字calc上的阶乘以数学方式减小为截短的序列...这是一种可以减少cpu负载的近似值。这是你的原因,因为你离开处理的不到1秒。
迪奥戈

我怀疑它是否溢出可能取决于CPU是32位还是64位。无论哪种方式,我都看不到它将占用多少CPU周期。我只执行了几次析因分解,最高可以分解为3248 !,但是它们都不是Task Manager的CPU图上的亮点,为什么呢?阶乘是非常简单,非常便宜的数学运算。
Synetech 2014年

@Synetech Mine溢出了,使用Windows 7 64位。我使用了biginteger计算器,但得到的答案是:pastebin.com/AeCf1s9c
starbeamrainbowlabs 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.