Come posso produrre un elevato carico della CPU su Windows?


76

A scopo di test, devo generare un elevato carico della CPU su un Windows Server 2003. Non riesco a installare alcun software ma devo accontentarmi di ciò che Windows fornisce.

Quale sarebbe il modo migliore per raggiungere questo obiettivo?


4
Di solito lancio solo un sacco di istanze di cmd.exe con dir /s C:. Ottieni circa 10 di quelli in esecuzione contemporaneamente e ottieni un utilizzo della CPU molto elevato (70% + su tutti i core del mio i7-2600k) oltre a molti I / O su disco. Non perfetto, ma fa il lavoro.
Andrew Lambert,

Risposte:


67

consume.exeda Windows Server 2003 Resource Toolkit può farlo facilmente.

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

Utilizza il 100% del tempo di CPU su tutti i core finché funziona. Può anche consumare altre risorse (come suggerisce il nome).


20
Resource Toolkit non è installato per impostazione predefinita.
HaydnWVN

Che dire di un server 2008?
Jonathan Rioux,

@JonathanRioux: Stessa soluzione, scarica il toolkit delle risorse collegato nella risposta e utilizza consume.exe. L'applicazione non è inclusa in nessuna versione di Windows Server per impostazione predefinita.
Der Hochstapler,

L' consume.exepuò anche essere utilizzato per consumare tutto lo spazio su disco utilizzando consume -disk-space -time 60. È uno strumento molto utile! Quando lo si installa come parte del Resource Toolkit, verrà installato per C:\Program Files (x86)\Windows Resource Kits\Toolsimpostazione predefinita.
Benny Neugebauer,

Strumento piacevole, ma tieni presente che inizia sempre i suoi thread con priorità normale, anche se il file EXE stesso viene avviato "al di sotto del normale".
EM0

39

Lo fa il seguente file batch:

@echo off
:loop
goto loop

Tuttavia, se si dispone di più core, è necessario avviare più istanze.

Per interrompere, premere Ctrl+ Cnella console.


È stato perfetto. Solo una esecuzione per core. Le migliori soluzioni rimangono semplici. Grazie. MA, non riesco a capire come controllare se n core non sta guardando per l'istanza del 1 ° ciclo%, perché ho fisico e core, ma non contatore di thread sul mio Windows7. ( wmic cpu get NumberOfCoressarebbe 2 e ho 4 thread, 2 core). Immagino di creare un batch automatico che si adatti perfettamente alla capacità della CPU del 100%. I migliori saluti.
erm3nda,

34

IntelBurnTest e Prime95 sono noti per fare proprio questo. Non richiedono realmente l'installazione, poiché possono essere eseguiti scompattando le rispettive zip, ma non soddisfano il requisito "deve essere nativo". Sono un overclocker, e questi sono gli strumenti che uso per garantire la stabilità del sistema in assoluto, si potranno generare il massimo carico dal computer.

Per quanto riguarda il tuo desiderio che sia un software nativo - Windows non ha davvero gli strumenti per fare una cosa del genere, tranne forse per il file batch sopra, che sarà un disastro da gestire se va in tilt . (I loop infiniti possono essere disordinati.)


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 thingMa questo è il requisito della domanda. Gli strumenti che hai suggerito non vanno bene e quindi dovrebbero essere commenti, non una risposta. except for maybe the above batch file, which is going to be a mess to handle if it goes haywire. (Infinite loops can be messyQuasi. Windows include diverse opzioni di programmazione che potrebbero essere facilmente realizzate per consumare cicli della CPU pur fornendo il controllo.
Synetech,

29

Un loop stretto in VBS senza I / O lo farà. Avrai bisogno di tanti processi quanti sono i core. Quanto segue utilizzerà il 100% sulla mia VM Win2k3 o il 50% sul mio host dual-core (100% se lancio 2)

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

Dovrai uccidere wscript.exe nel task manager per terminarlo.


Davvero non capisco il codice che hai inserito. L'hai provato prima di provarlo? Come devo provarlo. Non hai messo così tante informazioni. Mi piace in questo modo, ma spiega un po '. Nessun premio per la pigrizia.
erm3nda,

Questo è il risultato della creazione dello script e della sua esecuzione.
mgjk,

E dov'è la sceneggiatura?
erm3nda,

Sono le linee 2 e 3.
mgjk

Mi dispiace, questo è vbs non pipistrello. Il mio fallimento. Questo wscript richiede esattamente 1 thread. Dovrai eseguire più istanze come il pipistrello: goto script. È la controparte vbs. Bello. Grazie.
erm3nda,

9

CPUSTRES.EXE

Esiste un vecchio strumento SysInternals del 1996 chiamato "CPU Stress" che funziona ancora. (L'ho appena provato sul mio laptop Windows 10.)

Carico CPU personalizzato

È basato sulla GUI e consente di eseguire fino a quattro thread con intensità personalizzate. Ciò consente di ottimizzare il carico della CPU desiderato. Come regola generale: un thread con Activityset to Maximumconsumerà circa il 25% di CPU. Quindi, ad esempio: se si eseguono tre thread al massimo, il carico della CPU arriva a circa il 75%.

Portatile

CPUSTRES.EXEè un download portatile e non richiede installazione.


CPUSTRES.EXE è anche raccomandato da Microsoft: blogs.msdn.microsoft.com/vijaysk/2012/10/26/… - Ottimo strumento!
Benny Neugebauer,

È uno strumento piacevole, ma purtroppo consente solo l'avvio di 4 thread, il che non è abbastanza per massimizzare un processore moderno (quad-core con hyper-threading).
EM0

5

HyperPi (GUI per eseguire SuperPi su più core) può essere eseguito senza installarlo semplicemente copiarlo sul server ed eseguirlo da qualsiasi posizione. Anche su qualcosa di veloce puoi caricare tutti i core per poche ore facendo dire 16 calcoli simultanei da 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.Questo è un tecnicismo e un gioco da ragazzi. Quando qualcuno dice "non è possibile installare nulla", ciò non significa necessariamente effettivamente l' installazione , potrebbe non essere in grado di eseguire nulla di nuovo. Ad esempio, potrebbe esserci una politica di sistema che blocca tutti i programmi tranne quelli in una lista bianca. Ciò impedirebbe anche l'esecuzione di app "portatili", quindi dire che non è necessario installarlo non funziona.
Synetech,

4

L'esecuzione for /l %a in (0,0,1) do echo ain un prompt dei comandi (stampa a ciclo infinito a) ha l'effetto osservato di avviare conhost.exeun'esecuzione con un carico della CPU del 10-20% su Windows 7 su un i5 mobile di fascia bassa. Puoi provare a eseguirne diversi in parallelo, ad esempio i seguenti in un file batch:

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

Ciò potrebbe far funzionare la tua CPU al 100%. Le linee possono essere aggiunte / rimosse per regolare.
Avvertenza: si tratta di loop infiniti, che potresti avere difficoltà a chiudere. I numeri tra parentesi possono essere sostituiti, ad esempio (0,1,10000), per un ciclo finito. L'ultimo numero (nel ciclo finito) può essere regolato per regolare il tempo di esecuzione. Nel caso ti stia chiedendo, in pratica significa "iniziare dal numero 0, aumentare di 1 fino a raggiungere 10000", che si traduce in 10000 cicli di ciclo.


Hai provato questo? Questo è legato all'IO, quindi penso che probabilmente non raggiungerà l'utilizzo della CPU al 100%, indipendentemente dal numero di istanze avviate.
Ben Richards,

1
Potrebbe benissimo dipendere dal sistema. Per me, è stato costantemente al di sopra del 97% totale, anche se con il dwm.exe25% e tutti i costieri si aggiravano intorno al 5-10%. In ogni caso, la soluzione vbscript di mgjk è più elegante.
Bob

La console di Windows è eccezionalmente lenta quando si tratta di allagare la console. Causa anche un significativo ritardo della GUI che potrebbe non permetterti di ucciderlo con Task Manager. Nota che Ctrl-C o Ctrl-Break non funzioneranno a causa dei dati che sono già in circolazione.
quantum

4

Ho scoperto di recente e posso consigliare la versione gratuita di HeavyLoad:

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

Fa un lavoro efficace nel pompare i livelli della CPU per vedere come le applicazioni riescono a superare le difficoltà.


Come hanno detto:can’t install/run any third-party software; only built into Windows
Synetech,

Ho trovato molto interessante quel programma di programmi. Funziona semplicemente e puoi anche ottenere il 100% della CPU usando solo 256 Mb di RAM (lo faccio su una RAM i5 da 4 GB al tuo riferimento). L'unica opzione che mi manca è lo stress della GPU promesso dal software. @AndyUK, hai trovato questa opzione?
erm3nda,

1

Il modo in cui la maggior parte delle persone lo fa è eseguire qualcosa che fa un carico di elaborazione - mi è stato consigliato il superpi , sebbene l' hyperpi potrebbe funzionare meglio per un sistema moderno. Calcola un valore assurdamente elevato di pi e eseguirà efficacemente il processore a pieno carico.

In alternativa, è possibile eseguire StressCPU basato su Fold @ home

Se devi mantenere carichi elevati per periodi di tempo più lunghi, prendi in considerazione qualcosa come piegare @ home



1

Se non hai Internet per quel PC o non ricordi il sito Web per quel test della CPU, e non hai voglia di script, puoi usare la funzione zip integrata di Windows per comprimere un sacco di file o cartelle un mucchio di volte contemporaneamente .

Fare clic con il pulsante destro del mouse sul file o sulla cartella, scegliere Invia a, quindi fare clic su Cartella compressa (zippata)

Puoi fare gli stessi file / cartelle più volte contemporaneamente, ti suggerisco di utilizzare le cartelle di Windows o dei file di programma.

È quindi possibile decomprimere i file in un'altra posizione ed eseguire un confronto di file con il comando fc per verificare che tutti i calcoli siano stati eseguiti correttamente. Anche se suggerirei di utilizzare un singolo file grande per questo, poiché la sintassi del comando per il confronto di molti file con strumenti Windows standard è fastidiosa.


Mi ha colpito. Il: goto loop su una mazza sembra molto più facile. Ed evita l'utilizzo di I / O senza senso.
erm3nda,

1

Veloce, facile, PowerShell

while ($true){}

Un ciclo infinito senza ingressi o uscite; simile alla risposta di Quantum, se si hanno più core, è necessario avviare più istanze di PowerShell che esegue questo script


0

Usa il "calc" incorporato per calcolare 10000! (10000 fattoriale). Usa due o tre istanze per massimizzare un multi-core.


In realtà, eccederà il calc ... c'è un valore massimo che calc calcolerebbe, è inferiore a 10000 ma superiore a 1000.
Diogo

@DiogoRocha Non ha traboccato: ho ottenuto 2.8462596809170545189064132121199e + 35659. Tuttavia, l'ho fatto in meno di un secondo sul mio computer.
quantum

hmmm. Il mio ha traboccato, in realtà un fattoriale su un calc digitale è matematicamente ridotto a una serie troncata ... è un approssimazione che ridurrà i carichi della cpu. questo è il motivo per cui hai lasciato meno di 1 secondo di elaborazione ..
Diogo,

Ho il sospetto che l'overflow possa dipendere dal fatto che la CPU sia a 32 o 64 bit. Ad ogni modo, non vedo come ciò richiederebbe molti cicli della CPU. Ho appena eseguito diversi factorial e il massimo che ho potuto fare è stato 3248 !, ma nessuno di loro ha fatto nemmeno un salto nel grafico della CPU di Task Manager, e perché dovrebbe? I fattoriali sono un'operazione matematica molto semplice e molto economica.
Synetech,

@Synetech Mine è stato traboccato, utilizzando Windows 7 a 64 bit. Ho usato un calcolatore biginteger e ho ottenuto questo come risposta però: pastebin.com/AeCf1s9c
starbeamrainbowlabs

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.