Comment puis-je produire une charge de processeur élevée sous Windows?


76

À des fins de test, je dois générer une charge de processeur élevée sur Windows Server 2003. Je ne peux installer aucun logiciel, mais je dois me débrouiller avec ce que Windows fournit.

Quel serait le meilleur moyen d'y parvenir?


4
En général, je lance simplement un groupe d'instances cmd.exe avec dir /s C:. Obtenez 10 ou plus de ceux-ci en cours d'exécution en même temps et vous obtenez une utilisation très élevée du processeur (70% + sur tous les cœurs de mon i7-2600k) en plus de beaucoup d'E / S de disque. Pas parfait, mais ça fait le travail.
Andrew Lambert

Réponses:


67

consume.exeà partir de la boîte à outils de ressources Windows Server 2003 peut le faire facilement.

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

Utilise 100% du temps CPU sur tous les cœurs tant qu'il fonctionne. Il peut également consommer d'autres ressources (comme son nom l'indique).


20
Le Toolkit Resource n'est pas installé par défaut.
HaydnWVN

Qu'en est-il d'un serveur 2008?
Jonathan Rioux

@JonathanRioux: Même solution, téléchargez le kit de ressources lié dans la réponse et utilisez-le consume.exe. L'application n'est incluse dans aucune version de Windows Server par défaut.
Der Hochstapler

Le consume.exepeut également être utilisé pour utiliser tout votre espace disque en utilisant consume -disk-space -time 60. C'est un outil très pratique! Lors de l'installation dans le cadre du Resource Toolkit, il sera installé C:\Program Files (x86)\Windows Resource Kits\Toolspar défaut.
Benny Neugebauer

Bel outil, mais sachez qu’il commence toujours ses threads en priorité normale, même si le fichier EXE lui-même est démarré à "en dessous de la normale".
EM0

39

Le fichier de commandes suivant le fait:

@echo off
:loop
goto loop

Cependant, si vous avez plusieurs cœurs, vous devez démarrer plusieurs instances.

Pour arrêter, appuyez sur Ctrl+ Cdans la console.


C'était parfait. Juste une exécution par cœur. Les meilleures solutions restent simples. Je vous remercie. MAIS, je n'arrive pas à comprendre comment vérifier si n cœurs ne surveillent pas la 1ère instance de boucle%, car j’ai un physique et des cœurs, mais pas de compteur de threads sur mon Windows7. ( wmic cpu get NumberOfCoresserait 2, et j'ai 4 fils, 2 noyaux). J'imagine créer un lot automatique qui s'adapte parfaitement à la capacité de 100% du processeur. Meilleures salutations.
erm3nda

34

IntelBurnTest et Prime95 sont connus pour cela. Ils ne nécessitent pas vraiment d'installation, car ils peuvent être exécutés en décompressant leurs zips respectifs, mais cela ne répond pas à votre exigence "doit être natif". Je suis un overclocker, et ce sont les outils que j'utilise pour assurer la stabilité du système absolu, ils vont générer la charge possible à partir de votre ordinateur.

Pour ce qui est de votre désir d’être un logiciel natif - Windows ne vient pas vraiment avec les outils pour faire une telle chose, sauf peut-être le fichier de commandes ci-dessus, qui va être un désastre à gérer si ça tourne en rond . (Les boucles infinies peuvent être désordonnées.)


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 thingMais c'est l'exigence de la question. Les outils que vous avez proposés ne correspondent pas à cela et devraient donc être des commentaires, pas une réponse. 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À peine. Windows inclut plusieurs options de programmation qui pourraient facilement être utilisées pour consommer des cycles de processeur tout en fournissant un contrôle.
Synetech

29

Une boucle étroite dans VBS sans I / O le fera. Vous aurez besoin d'autant de processus que de cœurs. Ce qui suit utilisera 100% sur ma machine virtuelle Win2k3 ou 50% sur mon hôte bicœur (100% si je lance 2)

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

Vous devrez tuer wscript.exe dans le gestionnaire de tâches pour le terminer.


Je ne comprends vraiment pas le code que vous avez mis. Vous l'avez testé avant de le tester? Comment dois-je le tester. Vous ne mettez pas tellement d'informations. J'aime ça, mais explique un peu. Aucun prix pour la paresse.
erm3nda

C'est le résultat de la création du script et de son exécution.
mgjk

Et où est le script?
erm3nda

C'est la ligne 2 et 3.
mgjk le

Je suis désolé, ce n'est pas vbs bat. Mon échec. Ce script prend exactement 1 thread. Vous devrez exécuter plusieurs instances, comme le script bat: goto. C'est la contrepartie de vbs. Agréable. Merci.
erm3nda

9

CPUSTRES.EXE

Il existe un ancien outil SysInternals de 1996 appelé "CPU Stress" qui fonctionne toujours. (Je viens de l'essayer sur mon ordinateur portable Windows 10.)

Charge du processeur personnalisée

Il est basé sur une interface graphique et vous permet d'exécuter jusqu'à quatre threads à des intensités personnalisées. Cela vous permet d’ajuster la charge du processeur souhaitée. En règle générale: un thread dont le Activityparamètre est défini sur Maximumconsomme environ 25% du processeur. Ainsi, à titre d'exemple: si vous exécutez trois threads au maximum, la charge de votre processeur atteint environ 75%.

Portable

CPUSTRES.EXEest un téléchargement portable et ne nécessite pas d'installation.


CPUSTRES.EXE est également recommandé par Microsoft: blogs.msdn.microsoft.com/vijaysk/2012/10/26/… - Très bon outil!
Benny Neugebauer

C'est un bel outil, mais qui ne permet malheureusement que de démarrer 4 threads, ce qui n'est pas suffisant pour maximiser un processeur moderne (quad-core avec hyper-threading).
EM0

5

HyperPi (interface graphique permettant d'exécuter SuperPi sur plusieurs cœurs) peut être exécuté sans installation. Il suffit de le copier sur le serveur et de l'exécuter à partir de n'importe quel emplacement. Même sur quelque chose de rapide, vous pouvez charger tous les cœurs pendant quelques heures en effectuant 16 calculs simultanés sur 32 places.


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.C'est une technicité et un nitpick. Lorsque quelqu'un dit «ne peut rien installer», cela ne signifie pas nécessairement qu'il faut installer , il se peut qu'il ne puisse plus exécuter quoi que ce soit . Par exemple, il peut exister une stratégie système qui bloque tous les programmes sauf ceux figurant sur une liste blanche. Cela empêcherait même les applications «portables» de s'exécuter. Dire que vous n'avez pas à l'installer ne fonctionne pas.
Synetech

4

L'exécution for /l %a in (0,0,1) do echo adans une invite de commande (impression de boucle infinie a) a pour effet observé de démarrer une conhost.exeexécution à 10-20% de charge du processeur sur Windows 7 sur un mobile i5 bas de gamme. Vous pouvez essayer d’en exécuter plusieurs en parallèle, par exemple dans un fichier de commandes:

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

Votre processeur pourrait fonctionner à 100%. Des lignes peuvent être ajoutées / supprimées pour s'ajuster.
Attention: ce sont des boucles infinies, que vous pouvez avoir du mal à fermer. Les nombres entre parenthèses peuvent être remplacés, par exemple (0,1,10000)pour une boucle finie. Le dernier nombre (dans la boucle finie) peut être ajusté pour ajuster le temps d'exécution. Au cas où vous vous le demanderiez, cela signifie fondamentalement "commencez au numéro 0, incrémentez de 1 jusqu'à atteindre 10000", ce qui correspond à 10 000 cycles de boucle.


Avez-vous testé cela? Ceci est lié à l'IO donc je pense qu'il n'atteindra probablement pas 100% d'utilisation du processeur, peu importe le nombre d'instances que vous lancez.
Ben Richards

1
Cela pourrait très bien dépendre du système. Pour moi, le total était toujours supérieur à 97%, mais dwm.exeà 25% et tous les hôtes oscillant entre 5 et 10%. Dans tous les cas, la solution vbscript de mgjk est plus élégante.
Bob

La console Windows est exceptionnellement lente lorsqu'il s'agit d'inonder la console. Cela entraîne également un décalage important de l’interface graphique qui pourrait ne pas vous permettre de le tuer avec le gestionnaire de tâches. Notez que Ctrl-C ou Ctrl-Break ne fonctionnera pas à cause des données déjà épuisées.
Quantum

4

J'ai récemment découvert et peux recommander la version gratuite de HeavyLoad:

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

Fait un travail efficace pour remonter les niveaux de CPU pour voir comment les applications gèrent sous la contrainte.


Comme ils ont dit:can’t install/run any third-party software; only built into Windows
Synetech

J'ai trouvé ce programme de prograt très intéressant. Cela fonctionne simplement et vous pouvez également obtenir 100% de CPU en utilisant seulement 256 Mo de RAM (je le fais sur un RAM i5 4 Go à votre référence). La seule option qui me manque est le stress du GPU promis par le logiciel. @AndyUK, avez-vous trouvé cette option?
erm3nda

1

La plupart des gens le font, c’est exécuter quelque chose qui demande beaucoup de traitement - on me recommandait superpi , même si hyperpi pourrait mieux fonctionner pour un système moderne. Calculez une valeur absurdement élevée de pi et exécutez le processeur à pleine charge.

Sinon, vous pouvez exécuter StressCPU qui est basé sur fold @ home

Si vous devez conserver des charges élevées pendant de longues périodes, envisagez quelque chose comme le repliement à la maison.



1

Si vous ne disposez pas d'Internet pour ce PC ou si vous ne vous souvenez plus du site Web pour ce test de CPU, et si vous ne vous sentez pas comme un script, vous pouvez utiliser la fonctionnalité zip intégrée de Windows pour compresser plusieurs fichiers ou dossiers plusieurs fois simultanément. .

Cliquez avec le bouton droit sur le fichier ou le dossier, pointez sur Envoyer vers, puis cliquez sur Dossier compressé (zippé).

Vous pouvez faire le même fichier / dossier plusieurs fois en même temps, je suggère d’utiliser les dossiers windows ou program files.

Vous pouvez ensuite décompresser les fichiers à un autre emplacement et comparer les fichiers avec la commande fc pour vérifier que tous les calculs ont été effectués correctement. Bien que je suggère que vous utilisiez un seul gros fichier pour cela, la syntaxe de commande pour la comparaison de fichiers de nombreux fichiers avec des outils Windows standard est ennuyeuse.


Impressionné par cela. La boucle goto sur une chauve-souris semble tellement plus facile. Et évitez l'utilisation insensée des entrées / sorties.
erm3nda

1

Rapide, facile, PowerShell

while ($true){}

Une boucle infinie sans entrées ni sorties; Comme pour la réponse de Quantum, si vous avez plusieurs cœurs, vous devez démarrer plusieurs instances de PowerShell exécutant ce script.


0

Utilisez le "calcul" intégré pour calculer 10 000! (10000 factoriel). Utilisez deux ou trois instances pour maximiser un multicœur.


En fait, il débordera calc ... il y a une valeur maximale calculée par calc, elle est inférieure à 10 000 mais supérieure à 1 000.
Diogo

@ DiogoRocha N'a pas débordé: j'ai 2,8462596809170545189064132121199e + 35659. Cependant, je l'ai fait en moins d'une seconde sur mon ordinateur.
quantique

hmmm. Le mien a débordé, en fait une factorielle sur un calcul numérique est réduite matériellement en une série tronquée ... c'est une approximation qui réduira les charges de calcul. c'est ta raison parce que tu as laissé moins de 1 seconde de traitement ..
Diogo

Je soupçonne qu’il déborde ou non dépend du type de processeur 32 bits ou 64 bits. Quoi qu'il en soit, je ne vois pas en quoi cela prendrait beaucoup de cycles de traitement. Je viens d'effectuer plusieurs factorielles et le plus élevé que je pouvais atteindre était 3248 !, mais aucun d'entre eux n'a même entamé le graphique du processeur du gestionnaire de tâches, et pourquoi le devrait-il? Les factorielles sont une opération mathématique très facile et très peu coûteuse.
Synetech

@ Synetech Mine débordé sous Windows 7 64 bits. J'ai utilisé une calculatrice biginteger et j'ai obtenu ceci comme réponse: pastebin.com/AeCf1s9c
starbeamrainbowlabs

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.