For testing purposes I need to generate high CPU load on a Windows Server 2003. I cannot install any software but have to make do with what Windows provides.
What would be the best way to achieve that?
consume.exe from the Windows Server 2003 Resource Toolkit can do this easily.
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...
Uses 100% CPU time on all cores as long as it runs. It can also consume other resources (as the name implies).
The following batch file does it:
@echo off :loop goto loop
However, if you have multiple cores, you have start multiple instances.
To stop, press Ctrl+C in the console.
IntelBurnTest and Prime95 are known for doing just this. They don't really require installation, as they can be run by unpacking their respective zips, but it doesn't fulfill your "must be native" requirement. I'm an overclocker, and these are the tools I use to ensure absolute system stability, they will generate the utmost load from your computer.
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.)
A tight loop in VBS with no I/O will do it. You'll need as many processes as cores. The following will use 100% on my Win2k3 VM, or 50% on my dual-core host (100% if I launch 2)
c:\test\>copy con thing.vbs While True Wend ^z c:\test\>thing.vbs
You'll have to kill wscript.exe in the task manager to end it.
There is an old SysInternals tool from 1996 called "CPU Stress" that still works. (I just tried it on my Windows 10 laptop.)
It's GUI based and allows you to run up to four threads at custom intensities. This allows you to tune the desired CPU load. As a rule of thumb: One thread with
Activity set to
Maximum will consume about 25% CPU. So as an example: If you run three threads at Maximum, your CPU load goes to about 75%.
CPUSTRES.EXE is a portable download and does not require installation.
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. Even on something fast you can load up all the cores for few hours doing say 16 simultaneous 32M place calculations.
for /l %a in (0,0,1) do echo a in a command prompt (infinite loop printing
a) has the observed effect of starting a
conhost.exe running at 10-20% CPU load on Windows 7 on a low-end mobile i5. You could try running several of these in parallel, for example the following in a batch file:
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
That could have your CPU running at 100%. Lines can be added/removed to adjust.
Warning: Those are infinite loops, which you may have trouble closing. The numbers inside the parentheses can be replaced, e.g.
(0,1,10000), for a finite loop. The last number (in the finite loop) can be adjusted to adjust the running time. In case you are wondering, it basically means "start at number 0, increment by 1 until it reaches 10000", which translates to 10000 loop cycles.
I have recently discovered and can recommend the free version of HeavyLoad:
Does an effective job at pumping up the CPU levels to see how applications cope under duress.
The way most people do it is to run something that does a load of processing - I was recommended superpi, though hyperpi might work better for a modern system. Calculate absurdly large value of pi, and it'll effectively run the processor at full load.
Alternatively you can run StressCPU which is based off folding@home
If you need to keep high loads for longer periods of time, consider something like folding@home
If you have no internet for that pc or can't remember the website for that cpu test, and you don't feel like scripting you can use the windows built in zip feature to compress a bunch of files or folders a bunch of times simultaneously.
Right-click the file or folder, point to Send To, and then click Compressed (zipped) Folder
You can do the same files/folder multiple times at the same time, I suggest using the windows or program files folders.
You can then unzip the files to another location and do a file compare with the fc command to check to see that all calculations occurred correctly. Though I would suggest that you use a single big file for this as the command syntax for file comparison of a lot of files with standard windows tools is annoying.
Quick, easy, PowerShell
An infinite loop with no inputs or outputs; similar to Quantum's answer, if you have multiple cores, you have to start multiple instances of PowerShell running this script
Use the built-in "calc" to calculate 10000! (10000 factorial). Use two or three instances to max out a Multi-core.
I publish such a tool named MultiCpuLoad.
Requires .NET Framework 2.0, 3.5, or 4.5.
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?