Wie kann ich unter Windows eine hohe CPU-Last erzeugen?

76

Zu Testzwecken muss ich auf einem Windows Server 2003 eine hohe CPU-Auslastung erzeugen. Ich kann keine Software installieren, sondern muss mit dem auskommen, was Windows bereitstellt.

Was wäre der beste Weg, um das zu erreichen?

Morgon
quelle
4
Normalerweise starte ich nur eine Reihe von cmd.exe-Instanzen mit dir /s C:. Wenn Sie ungefähr zehn davon gleichzeitig zum Laufen bringen, erhalten Sie eine sehr hohe CPU-Auslastung (über 70% auf allen Kernen meines i7-2600k) und eine Menge Festplatten-E / A. Nicht perfekt, aber es wird die Arbeit erledigt.
Andrew Lambert

Antworten:

67

consume.exeMit dem Windows Server 2003 Resource Toolkit ist dies problemlos möglich.

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...

Verwendet 100% CPU-Zeit auf allen Kernen, solange es ausgeführt wird. Es kann auch andere Ressourcen verbrauchen (wie der Name schon sagt).

Der Hochstapler
quelle
20
Das Resource Toolkit wird nicht standardmäßig installiert.
HaydnWVN
Was ist mit einem Server 2008?
Jonathan Rioux
@ Jonathan Rioux: Gleiche Lösung, laden Sie das in der Antwort verlinkte Ressourcen-Toolkit herunter und verwenden Sie es consume.exe. Die Anwendung ist standardmäßig in keiner Version von Windows Server enthalten.
Der Hochstapler
Das consume.exekann auch verwendet werden, um den gesamten Speicherplatz zu belegen consume -disk-space -time 60. Es ist ein sehr praktisches Werkzeug! Bei der Installation als Teil des Resource Toolkit wird C:\Program Files (x86)\Windows Resource Kits\Toolsstandardmäßig installiert .
Benny Neugebauer
Nettes Tool, aber beachten Sie, dass es seine Threads immer mit normaler Priorität startet, auch wenn die EXE selbst mit "under normal" gestartet wird.
EM0
39

Die folgende Batch-Datei erledigt das:

@echo off
:loop
goto loop

Wenn Sie jedoch mehrere Kerne haben, müssen Sie mehrere Instanzen starten.

Zum Stoppen drücken Sie Ctrl+ Cin der Konsole.

Quantum
quelle
Das war perfekt Nur eine Ausführung pro Kern. Die besten Lösungen bleiben einfach. Danke. ABER ich kann nicht herausfinden, wie ich nach n Kernen suche, die nicht auf die Instanz% der ersten Schleife achten, weil ich physische und Kerne habe, aber keinen Threadzähler auf meinem Windows7. ( wmic cpu get NumberOfCoreswäre 2, und ich habe 4 Threads, 2 Kerne). Es wird davon ausgegangen, dass ein automatischer Stapel erstellt wird, der der 100% igen CPU-Kapazität entspricht. Freundliche Grüße.
erm3nda
34

IntelBurnTest und Prime95 sind dafür bekannt. Sie müssen nicht wirklich installiert werden, da sie durch Auspacken der entsprechenden Reißverschlüsse ausgeführt werden können, aber sie erfüllen nicht Ihre Anforderung "Muss nativ sein". Ich bin ein Overclocker. Mit diesen Tools stelle ich die absolute Systemstabilität sicher. Sie werden die größte Last von Ihrem Computer erzeugen.

Wenn Sie möchten, dass es sich um eine native Software handelt, sind in Windows nicht die entsprechenden Tools enthalten, mit Ausnahme der oben genannten Batch-Datei, die ein Chaos darstellt, wenn es kaputt geht . (Endlosschleifen können chaotisch sein.)

Xenithorb
quelle
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 thingAber das ist die Voraussetzung für die Frage. Die von Ihnen vorgeschlagenen Tools passen nicht dazu und sollten daher Kommentare sein, keine Antwort. except for maybe the above batch file, which is going to be a mess to handle if it goes haywire. (Infinite loops can be messyKaum. Windows enthält mehrere Programmieroptionen, mit denen der CPU-Verbrauch bei gleichzeitiger Steuerung leicht verringert werden kann.
Synetech
29

Eine enge Schleife in VBS ohne E / A wird es tun. Sie benötigen so viele Prozesse wie Kerne. Im Folgenden wird 100% auf meiner Win2k3-VM oder 50% auf meinem Dual-Core-Host verwendet (100%, wenn ich 2 starte).

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

Sie müssen wscript.exe im Task-Manager beenden, um es zu beenden.

mgjk
quelle
Ich verstehe den von Ihnen eingegebenen Code wirklich nicht. Hast du es vorher getestet? Wie muss ich es testen? Du gibst nicht so viele Infos. Ich mag das, aber erkläre es ein bisschen. Kein Preis für Faulheit.
erm3nda
Das ist die Ausgabe des Erstellens und Ausführens des Skripts.
mgjk
Und wo ist das Drehbuch?
erm3nda
Es ist Linie 2 und 3.
mgjk
Es tut mir leid, das ist VBS nicht Fledermaus. Mein Fehler. Dieses wscript benötigt genau 1 Thread. Sie müssen mehrere Instanzen wie das bat: goto-Skript ausführen. Es ist das VBS-Gegenstück. Nett. Vielen Dank.
erm3nda
9

CPUSTRES.EXE

Es gibt ein altes SysInternals-Tool aus dem Jahr 1996 namens "CPU Stress" , das immer noch funktioniert. (Ich habe es gerade auf meinem Windows 10-Laptop ausprobiert.)

Benutzerdefinierte CPU-Auslastung

Es ist GUI-basiert und ermöglicht es Ihnen, bis zu vier Threads mit benutzerdefinierten Intensitäten auszuführen. Auf diese Weise können Sie die gewünschte CPU-Auslastung einstellen. Als Faustregel gilt: Ein Thread mit der ActivityEinstellung auf Maximumverbraucht ungefähr 25% der CPU. Als Beispiel: Wenn Sie maximal drei Threads ausführen, beträgt die CPU-Auslastung ca. 75%.

tragbar

CPUSTRES.EXEist ein portabler Download und erfordert keine Installation.

StackzOfZtuff
quelle
CPUSTRES.EXE wird auch von Microsoft empfohlen: blogs.msdn.microsoft.com/vijaysk/2012/10/26/… - Sehr gutes Tool!
Benny Neugebauer
Es ist ein nettes Tool, erlaubt aber leider nur das Starten von 4 Threads, was nicht ausreicht, um einen modernen Prozessor (Quad-Core mit Hyper-Threading) zu maximieren.
EM0
5

HyperPi (GUI zum Ausführen von SuperPi auf mehreren Kernen) kann ohne Installation ausgeführt werden. Kopieren Sie es einfach auf den Server und führen Sie es von einem beliebigen Standort aus. Sogar auf etwas schnellem können Sie alle Kerne für einige Stunden aufladen, indem Sie 16 simultane 32M-Platzberechnungen durchführen.

JTotham
quelle
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.Das ist eine Technik und ein Trottel. Wenn jemand sagt, dass er nichts installieren kann, heißt das nicht unbedingt, dass er tatsächlich installieren kann , kann er möglicherweise nichts Neues ausführen . Beispielsweise kann es eine Systemrichtlinie geben, die alle Programme mit Ausnahme der Programme auf einer Whitelist blockiert. Das würde verhindern, dass auch „portable“ Apps ausgeführt werden. Wenn Sie also nicht installieren müssen, funktioniert dies nicht.
Synetech
4

Das Ausführen for /l %a in (0,0,1) do echo ain einer Eingabeaufforderung (Endlosschleifendruck a) hat den beobachteten Effekt, dass unter conhost.exeWindows 7 auf einem Low-End-Mobilgerät i5 eine Ausführung mit 10 bis 20% CPU-Auslastung gestartet wird. Sie können versuchen, mehrere davon parallel auszuführen, z. B. die folgenden in einer Batchdatei:

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

Dadurch könnte Ihre CPU zu 100% ausgelastet sein. Zum Anpassen können Linien hinzugefügt / entfernt werden.
Warnung: Dies sind Endlosschleifen, bei denen Sie möglicherweise Probleme beim Schließen haben. Die Zahlen in Klammern können ersetzt werden, z. B. (0,1,10000)für eine endliche Schleife. Die letzte Zahl (in der endlichen Schleife) kann angepasst werden, um die Laufzeit anzupassen. Für den Fall, dass Sie sich fragen, bedeutet dies im Grunde "bei Nummer 0 beginnen, um 1 erhöhen, bis 10000 erreicht sind", was sich in 10000 Schleifenzyklen niederschlägt.

Bob
quelle
Hast du das getestet? Dies ist IO-gebunden, sodass ich denke, dass es wahrscheinlich keine 100% ige CPU-Auslastung erreichen wird, egal wie viele Instanzen Sie starten.
Ben Richards
1
Es könnte sehr gut systemabhängig sein. Für mich lag sie konstant über 97%, obwohl dwm.exebei 25% und allen Conhosts zwischen 5 und 10%. In jedem Fall ist die vbscript-Lösung von mgjk eleganter.
Bob
Die Windows-Konsole ist außergewöhnlich langsam, wenn es darum geht, die Konsole zu überfluten. Dies führt auch zu einer erheblichen Verzögerung der Benutzeroberfläche, die es Ihnen möglicherweise nicht ermöglicht, sie mit dem Task-Manager zu beenden. Beachten Sie, dass Ctrl-C oder Ctrl-Break aufgrund der Daten, die bereits ausgegeben wurden, nicht funktionieren.
Quantum
4

Ich habe kürzlich entdeckt und kann die kostenlose Version von HeavyLoad empfehlen:

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

Erledigt einen effektiven Job beim Hochpumpen der CPU-Ebenen, um zu sehen, wie Anwendungen unter Zwang zurechtkommen.

AndyUK
quelle
Wie sie sagten:can’t install/run any third-party software; only built into Windows
Synetech
Ich fand das Programm sehr interessant. Es funktioniert einfach und Sie können auch 100% CPU mit nur 256 MB RAM erhalten (ich mache auf einem i5 4 GB RAM zu Ihrer Referenz). Die einzige Option, die ich vermisse, ist die GPU-Belastung, die die Software verspricht. @AndyUK, hast du diese Option gefunden?
erm3nda
1

Die Art und Weise, wie die meisten Leute dies tun, ist, etwas auszuführen, das eine Menge Verarbeitung erledigt. Mir wurde Superpi empfohlen , obwohl Hyperpi für ein modernes System möglicherweise besser funktioniert. Berechnen Sie einen absurd großen Wert für pi, und der Prozessor wird effektiv bei Volllast ausgeführt.

Alternativ können Sie StressCPU ausführen, das auf fold @ home basiert

Wenn Sie längere Zeit hohe Lasten tragen müssen, sollten Sie sich überlegen, @ home zusammenzulegen

Geselle Geek
quelle
Gleiche Sache
Synetech
1

Wenn Sie für diesen PC kein Internet haben oder sich nicht an die Website für diesen CPU-Test erinnern können und keine Lust auf Skripterstellung haben, können Sie die in zip integrierte Windows-Funktion verwenden, um mehrere Dateien oder Ordner gleichzeitig zu komprimieren .

Klicken Sie mit der rechten Maustaste auf die Datei oder den Ordner, zeigen Sie auf Senden an, und klicken Sie dann auf Komprimierter (komprimierter) Ordner

Sie können dieselben Dateien / Ordner mehrere Male gleichzeitig ausführen. Ich empfehle, die Ordner für Windows- oder Programmdateien zu verwenden.

Anschließend können Sie die Dateien an einen anderen Speicherort entpacken und einen Dateivergleich mit dem Befehl fc durchführen, um zu überprüfen, ob alle Berechnungen korrekt durchgeführt wurden. Allerdings würde ich vorschlagen, dass Sie hierfür eine einzige große Datei verwenden, da die Befehlssyntax für den Dateivergleich vieler Dateien mit Standard-Windows-Tools ärgerlich ist.

BeowulfNode42
quelle
Beeindruckt davon. Die: goto Schleife auf einem Schläger klingt so viel einfacher. Und vermeiden Sie den unsinnigen I / O-Gebrauch.
erm3nda
1

Schnell, einfach, PowerShell

while ($true){}

Eine Endlosschleife ohne Ein- oder Ausgänge; Ähnlich wie bei Quantums Antwort müssen Sie bei mehreren Kernen mehrere Instanzen von PowerShell starten, in denen dieses Skript ausgeführt wird

ShaneC
quelle
0

Verwenden Sie das eingebaute "calc", um 10000 zu berechnen! (10000 Fakultät). Verwenden Sie zwei oder drei Instanzen, um einen Multi-Core zu maximieren.

wegund
quelle
Eigentlich wird es überlaufen calc .... es gibt einen Maximalwert, den calc berechnen würde, es ist weniger als 10000, aber mehr als 1000.
Diogo
@DiogoRocha Nicht übergelaufen: Ich habe 2.8462596809170545189064132121199e + 35659. Habe es jedoch in weniger als einer Sekunde auf meinem Computer gemacht.
Quantum
Hmmm. Meins ist übergelaufen, tatsächlich wird eine Fakultät auf einem digitalen Rechner matematisch zu einer abgeschnittenen Reihe reduziert ... es ist eine Annäherung, die die CPU-Lasten reduziert. Dies ist der Grund, warum Sie weniger als 1 Sekunde Zeit für die Verarbeitung übrig haben.
Diogo,
Ich vermute, ob es überläuft oder nicht, kann davon abhängen, ob die CPU 32-Bit oder 64-Bit ist. Wie auch immer, ich sehe nicht, wie viel CPU-Zyklen das in Anspruch nehmen würde. Ich habe gerade mehrere Fakultäten absolviert, und die höchste, die ich erreichen konnte, war 3248!, Aber keine von ihnen hat den CPU-Graphen des Task-Managers verändert, und warum sollte das so sein? Factorials sind eine sehr einfache, sehr billige mathematische Operation.
Synetech
@Synetech Mine ist übergelaufen, unter Windows 7 64-Bit. Ich benutzte einen BigInteger - Rechner und bekam dies als eine Antwort aber: pastebin.com/AeCf1s9c
starbeamrainbowlabs
0

Ich veröffentliche ein solches Tool namens MultiCpuLoad .

  • Wählbare Last von 20% bis 90%.
  • Auswählbare CPUs.
  • Keine Installation.
  • Keine Administratorrechte erforderlich.

Benötigt .NET Framework 2.0, 3.5 oder 4.5.

http://www.ristaino.net/Software/MultiCpuLoad

figolu
quelle