¿Cómo puedo producir una alta carga de CPU en Windows?


76

Para fines de prueba, necesito generar una alta carga de CPU en un Windows Server 2003. No puedo instalar ningún software, pero tengo que conformarme con lo que Windows proporciona.

¿Cuál sería la mejor manera de lograr eso?


44
Por lo general, solo inicio un montón de instancias cmd.exe con dir /s C:. Obtenga aproximadamente 10 de esos que se ejecutan a la vez y obtiene un uso muy alto de la CPU (70% + en todos los núcleos de mi i7-2600k) además de muchas E / S de disco. No es perfecto, pero hace el trabajo.
Andrew Lambert

Respuestas:


67

consume.exedesde Windows Server 2003 Resource Toolkit puede hacer esto fácilmente.

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

Utiliza el 100% del tiempo de CPU en todos los núcleos mientras se ejecuta. También puede consumir otros recursos (como su nombre lo indica).


20
Resource Toolkit no está instalado de manera predeterminada.
HaydnWVN

¿Qué pasa con un servidor 2008?
Jonathan Rioux el

@JonathanRioux: la misma solución, descargue el kit de herramientas de recursos vinculado en la respuesta y úselo consume.exe. La aplicación no está incluida en ninguna versión de Windows Server de forma predeterminada.
Der Hochstapler

El consume.exetambién se puede utilizar para consumir todo el espacio en disco utilizando consume -disk-space -time 60. ¡Es una herramienta muy útil! Al instalarlo como parte del Kit de herramientas de recursos, se instalará C:\Program Files (x86)\Windows Resource Kits\Toolsde forma predeterminada.
Benny Neugebauer el

Buena herramienta, pero tenga en cuenta que siempre inicia sus subprocesos con prioridad normal, incluso si el propio EXE se inicia en "debajo de lo normal".
EM0

39

El siguiente archivo por lotes lo hace:

@echo off
:loop
goto loop

Sin embargo, si tiene varios núcleos, debe iniciar varias instancias.

Para parar, presione Ctrl+ Cen la consola.


Eso fue perfecto. Solo una ejecución por núcleo. Las mejores soluciones siguen siendo simples. Gracias. PERO, no puedo encontrar la forma de verificar si los núcleos n no miran el% de instancia del primer bucle, porque obtuve físicos y núcleos, pero no hilos en mi Windows7. ( wmic cpu get NumberOfCoresSería 2, y tengo 4 hilos, 2 núcleos). Supongo que crearé un lote automático que se ajuste completamente al 100% de la capacidad de la CPU. Atentamente.
erm3nda

34

IntelBurnTest y Prime95 son conocidos por hacer precisamente esto. Realmente no requieren instalación, ya que se pueden ejecutar desempacando sus respectivas cremalleras, pero no cumple con el requisito de "debe ser nativo". Soy un overclocker, y estas son las herramientas que uso para asegurar la estabilidad del sistema absoluto, que van a generar el máximo de carga desde el ordenador.

En cuanto a su deseo de que sea un software nativo, Windows realmente no viene con las herramientas para hacer tal cosa, excepto tal vez el archivo por lotes anterior, que será un desastre manejar si se vuelve loco . (Los bucles infinitos pueden ser desordenados).


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 thingPero ese es el requisito de la pregunta. Las herramientas que sugirió no se ajustan a eso, por lo que deberían ser comentarios, no una respuesta. except for maybe the above batch file, which is going to be a mess to handle if it goes haywire. (Infinite loops can be messyApenas. Windows incluye varias opciones de programación que se podrían hacer fácilmente para consumir ciclos de CPU y al mismo tiempo proporcionar control.
Synetech

29

Un ciclo cerrado en VBS sin E / S lo hará. Necesitarás tantos procesos como núcleos. Lo siguiente utilizará el 100% en mi VM Win2k3, o el 50% en mi host de doble núcleo (100% si inicio 2)

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

Tendrá que eliminar wscript.exe en el administrador de tareas para finalizarlo.


Realmente no entiendo el código que pones. ¿Lo probaste antes de probarlo? ¿Cómo necesito probarlo? No pones tanta información. Me gusta así, pero explique un poco. No hay premio para la pereza.
erm3nda

Ese es el resultado de crear el script y ejecutarlo.
mgjk

¿Y dónde está el guión?
erm3nda

Son las líneas 2 y 3.
mgjk

Lo siento, esto es vbs no bat. Mi fallo. Este wscript toma exactamente 1 hilo. Deberá ejecutar varias instancias como el script bat: goto. Es la contraparte de vbs. Agradable. Gracias.
erm3nda

9

CPUSTRES.EXE

Hay una vieja herramienta SysInternals de 1996 llamada "CPU Stress" que todavía funciona. (Acabo de probarlo en mi computadora portátil con Windows 10).

Carga de CPU personalizada

Está basado en GUI y le permite ejecutar hasta cuatro hilos a intensidades personalizadas. Esto le permite ajustar la carga de CPU deseada. Como regla general: un hilo con Activityset to Maximumconsumirá aproximadamente un 25% de CPU. Entonces, como ejemplo: si ejecuta tres subprocesos al máximo, la carga de su CPU se acerca al 75%.

Portátil

CPUSTRES.EXEes una descarga portátil y no requiere instalación.


CPUSTRES.EXE también es recomendado por Microsoft: blogs.msdn.microsoft.com/vijaysk/2012/10/26/… - ¡Muy buena herramienta!
Benny Neugebauer

Es una buena herramienta, pero desafortunadamente solo permite iniciar 4 subprocesos, lo que no es suficiente para maximizar un procesador moderno (quad-core con hyper-threading).
EM0

5

HyperPi (GUI para ejecutar SuperPi en múltiples núcleos) se puede ejecutar sin instalarlo, simplemente cópielo en el servidor y ejecútelo desde cualquier ubicación. Incluso en algo rápido, puede cargar todos los núcleos durante unas horas haciendo, digamos, 16 cálculos simultáneos de 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.Eso es un tecnicismo y un truco. Cuando alguien dice "no se puede instalar nada", eso no significa necesariamente instalarlo realmente , es posible que no puedan ejecutar nada nuevo. Por ejemplo, puede haber una política del sistema que bloquee todos los programas, excepto los de una lista blanca. Eso evitaría que incluso las aplicaciones "portátiles" se ejecuten, por lo que decir que no tiene que instalarlo no funciona.
Synetech

4

La ejecución for /l %a in (0,0,1) do echo aen un símbolo del sistema (impresión de bucle infinito a) tiene el efecto observado de iniciar una conhost.exeejecución con una carga de CPU del 10-20% en Windows 7 en un i5 móvil de gama baja. Puede intentar ejecutar varios de estos en paralelo, por ejemplo lo siguiente en un archivo por lotes:

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

Eso podría tener su CPU funcionando al 100%. Se pueden agregar / quitar líneas para ajustar.
Advertencia: esos son bucles infinitos, que puede tener problemas para cerrar. Los números dentro de los paréntesis se pueden reemplazar, por ejemplo (0,1,10000), para un bucle finito. El último número (en el bucle finito) se puede ajustar para ajustar el tiempo de ejecución. En caso de que se lo pregunte, básicamente significa "comenzar en el número 0, incrementar en 1 hasta llegar a 10000", lo que se traduce en 10000 ciclos de bucle.


¿Has probado esto? Esto está limitado a IO, así que creo que probablemente no alcanzará el 100% de utilización de la CPU, sin importar cuántas instancias inicie.
Ben Richards

1
Bien podría depender del sistema. Para mí, fue consistentemente superior al 97% del total, aunque con dwm.exeun 25% y todos los conhosts rondando entre el 5-10%. En cualquier caso, la solución vbscript de mgjk es más elegante.
Bob

La consola de Windows es excepcionalmente lenta cuando se trata de inundar la consola. También causa un retraso significativo de la GUI que podría no permitirle matarlo con el administrador de tareas. Tenga en cuenta que Ctrl-C o Ctrl-Break no funcionarán debido a los datos que ya están fuera.
quantum

4

Recientemente descubrí y puedo recomendar la versión gratuita de HeavyLoad:

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

Realiza un trabajo eficaz al aumentar los niveles de CPU para ver cómo las aplicaciones se enfrentan bajo presión.


Como dijeron:can’t install/run any third-party software; only built into Windows
Synetech

Encontré ese programa prograt muy interesante. Simplemente funciona y también puede obtener un 100% de CPU usando solo 256Mb de ram (lo hago en un i5 4gb ram para su referencia). La única opción que extraño es el estrés de GPU que promete el software. @AndyUK, ¿encontraste esa opción?
erm3nda

1

La forma en que la mayoría de la gente lo hace es ejecutar algo que procesa mucho: me recomendaron superpi , aunque hyperpi podría funcionar mejor para un sistema moderno. Calcule un valor absurdamente grande de pi, y ejecutará efectivamente el procesador a plena carga.

Alternativamente, puede ejecutar StressCPU que se basa en fold @ home

Si necesita mantener cargas altas durante períodos de tiempo más largos, considere algo como doblar en casa



1

Si no tiene Internet para esa PC o no puede recordar el sitio web para esa prueba de CPU, y no tiene ganas de hacer scripts, puede usar la función zip incorporada de Windows para comprimir un montón de archivos o carpetas varias veces simultáneamente .

Haga clic con el botón derecho en el archivo o carpeta, seleccione Enviar a y, a continuación, haga clic en Carpeta comprimida (comprimida)

Puede hacer los mismos archivos / carpetas varias veces al mismo tiempo, sugiero usar las carpetas de Windows o de archivos de programa.

Luego puede descomprimir los archivos en otra ubicación y compararlos con el comando fc para verificar que todos los cálculos se hayan realizado correctamente. Aunque sugeriría que use un solo archivo grande para esto, ya que la sintaxis del comando para comparar archivos de muchos archivos con herramientas estándar de Windows es molesto.


Impresionado con eso. El: goto loop en un murciélago suena mucho más fácil. Y evite el uso sin sentido de E / S.
erm3nda

1

Rápido, fácil, PowerShell

while ($true){}

Un bucle infinito sin entradas ni salidas; similar a la respuesta de Quantum, si tiene múltiples núcleos, debe iniciar múltiples instancias de PowerShell ejecutando este script


0

¡Use el "cálculo" incorporado para calcular 10000! (Factorial 10000). Use dos o tres instancias para maximizar un Multi-core.


En realidad, desbordará el cálculo ... hay un valor máximo que calcularía el cálculo, es menos de 10000 pero más de 1000.
Diogo

@DiogoRocha no se desbordó: obtuve 2.8462596809170545189064132121199e + 35659. Sin embargo, lo hice en menos de un segundo en mi computadora.
Quantum

hmmm La mía se desbordó, en realidad un factorial en una calculadora digital se reduce matemáticamente a una serie truncada ... es una aproximación que reducirá las cargas de CPU. esta es la razón porque dejó menos de 1 segundo de procesamiento ..
Diogo

Sospecho que se desborda o no puede depender de si la CPU es de 32 bits o de 64 bits. De cualquier manera, no veo cómo eso tomaría muchos ciclos de CPU. ¡Acabo de realizar varios factoriales y el más alto que pude llegar fue 3248!, Pero ninguno de ellos hizo ni una pizca en el gráfico de CPU del Administrador de tareas, y ¿por qué debería hacerlo? Los factoriales son una operación matemática muy fácil y muy barata.
Synetech

@Synetech Mine se desbordó, usando Windows 7 de 64 bits. Sin embargo, usé una calculadora biginteger y obtuve esto como respuesta: pastebin.com/AeCf1s9c
starbeamrainbowlabs

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.