Como posso produzir alta carga de CPU no Windows?

76

Para fins de teste, preciso gerar alta carga de CPU no Windows Server 2003. Não consigo instalar nenhum software, mas preciso me contentar com o que o Windows fornece.

Qual seria a melhor maneira de conseguir isso?

Morgon
fonte
4
Normalmente, apenas inicio várias instâncias do cmd.exe com dir /s C:. Consiga 10 ou mais pessoas executando ao mesmo tempo e você terá um uso muito alto da CPU (mais de 70% em todos os núcleos do meu i7-2600k), além de muitas E / S de disco. Não é perfeito, mas faz o trabalho.
Andrew Lambert

Respostas:

67

consume.exedo Windows Server 2003 Resource Toolkit pode fazer isso 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...

Usa 100% de tempo de CPU em todos os núcleos, desde que seja executado. Também pode consumir outros recursos (como o nome indica).

Der Hochstapler
fonte
20
O Resource Toolkit não está instalado por padrão.
precisa saber é o seguinte
E um servidor 2008?
Jonathan Rioux 4/11
@ JonathanRioux: Mesma solução, faça o download do kit de ferramentas de recursos vinculado na resposta e use consume.exe. O aplicativo não está incluído em nenhuma versão do Windows Server por padrão.
Der Hochstapler
Também consume.exepode ser usado para consumir todo o seu espaço em disco usando consume -disk-space -time 60. É uma ferramenta muito útil! Ao instalá-lo como parte do Resource Toolkit, ele será instalado C:\Program Files (x86)\Windows Resource Kits\Toolspor padrão.
Benny Neugebauer
Ferramenta agradável, mas saiba que ele sempre inicia seus threads com prioridade normal, mesmo que o próprio EXE seja iniciado "abaixo do normal".
EM0 23/07
39

O seguinte arquivo em lotes faz isso:

@echo off
:loop
goto loop

No entanto, se você tiver vários núcleos, inicie várias instâncias.

Para parar, pressione Ctrl+ Cno console.

quantum
fonte
Isso foi perfeito. Apenas uma execução por núcleo. As melhores soluções continuam simples. Obrigado. MAS, eu não consigo descobrir como procurar n núcleos que não estão observando a instância do primeiro loop%, porque eu tenho físico e núcleos, mas não os threads são contrários no meu Windows7. ( wmic cpu get NumberOfCoresseria 2, e eu tenho 4 threads, 2 núcleos). Estou tentando criar um lote automático que atenda totalmente à capacidade da CPU de 100%. Cumprimentos.
precisa saber é o seguinte
34

IntelBurnTest e Prime95 são conhecidos por fazer exatamente isso. Eles realmente não requerem instalação, pois podem ser executados descompactando seus respectivos zips, mas isso não atende ao seu requisito "deve ser nativo". Eu sou um overclocker, e estas são as ferramentas que eu uso para garantir a estabilidade do sistema absoluto, eles vão gerar o máximo de carga do seu computador.

Quanto ao seu desejo de que seja um software nativo - o Windows não vem com as ferramentas para fazer isso, exceto, talvez, o arquivo em lotes acima, que será uma bagunça para lidar se der errado. . (Loops infinitos podem ser confusos.)

xenithorb
fonte
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 thingMas esse é o requisito da pergunta. As ferramentas que você sugeriu não se encaixam nisso e, portanto, devem ser comentários, não uma resposta. except for maybe the above batch file, which is going to be a mess to handle if it goes haywire. (Infinite loops can be messyDificilmente. O Windows inclui várias opções de programação que podem ser feitas com facilidade para consumir ciclos da CPU enquanto ainda fornecem controle.
Synetech 28/03
29

Um loop apertado no VBS sem E / S fará isso. Você precisará de tantos processos quanto núcleos. A seguir, utilizarei 100% na minha VM Win2k3 ou 50% no meu host de núcleo duplo (100% se eu iniciar 2)

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

Você precisará matar o wscript.exe no gerenciador de tarefas para finalizá-lo.

mgjk
fonte
Eu realmente não entendo o código que você colocou. Você testou antes de testá-lo? Como preciso testá-lo. Você não coloca tanta informação. Eu gosto desse jeito, mas explique um pouco. Nenhum prêmio por preguiça.
Erm3nda
Essa é a saída da criação e execução do script.
mgjk
E onde está o roteiro?
Erm3nda
São as linhas 2 e 3.
mgjk 07/04
Sinto muito, isso é vbs não bastão. Falha minha. Este wscript ocupa exatamente 1 thread. Você precisará executar várias instâncias, como o script bat: goto. É a contraparte vbs. Agradável. obrigado.
Erm3nda
9

CPUSTRES.EXE

Existe uma antiga ferramenta SysInternals de 1996 chamada "CPU Stress" que ainda funciona. (Acabei de experimentar no meu laptop Windows 10).

Carga de CPU personalizada

É baseado em GUI e permite executar até quatro threads em intensidades personalizadas. Isso permite que você ajuste a carga da CPU desejada. Como regra geral: um encadeamento com Activityset para Maximumconsumirá cerca de 25% da CPU. Por exemplo, se você executar três threads no máximo, a carga da CPU vai para cerca de 75%.

Portátil

CPUSTRES.EXEé um download portátil e não requer instalação.

StackzOfZtuff
fonte
O CPUSTRES.EXE também é recomendado pela Microsoft: blogs.msdn.microsoft.com/vijaysk/2012/10/26/… - Ferramenta muito boa!
Benny Neugebauer
É uma ferramenta legal, mas infelizmente só permite iniciar 4 threads, o que não é suficiente para maximizar um processador moderno (quad-core com hyper-threading).
EM0 23/07
5

O HyperPi (GUI para executar o SuperPi em vários núcleos) pode ser executado sem instalar, basta copiá-lo para o servidor e executá-lo em qualquer local. Mesmo em algo rápido, você pode carregar todos os núcleos por algumas horas, digamos 16 cálculos simultâneos de 32 milhões de lugar.

JTotham
fonte
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.Isso é um detalhe técnico e um detalhe. Quando alguém diz "não pode instalar nada", isso não significa necessariamente instalar , ele pode não conseguir executar nada de novo. Por exemplo, pode haver uma diretiva do sistema que bloqueie todos os programas, exceto aqueles em uma lista branca. Isso impediria a execução de aplicativos "portáteis", portanto, dizer que você não precisa instalá-lo não funciona.
Synetech 28/03
4

A execução for /l %a in (0,0,1) do echo aem um prompt de comando (impressão em loop infinito a) tem o efeito observado de iniciar uma conhost.exeexecução com carga de 10 a 20% da CPU no Windows 7 em um i5 móvel de última geração. Você pode tentar executar vários deles em paralelo, por exemplo, o seguinte em um arquivo em 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

Isso poderia ter sua CPU funcionando a 100%. Linhas podem ser adicionadas / removidas para ajustar.
Aviso: são loops infinitos, que você pode ter problemas para fechar. Os números dentro dos parênteses podem ser substituídos, por exemplo (0,1,10000), por um loop finito. O último número (no loop finito) pode ser ajustado para ajustar o tempo de execução. Caso você esteja se perguntando, significa basicamente "iniciar no número 0, aumentar em 1 até atingir 10000", o que se traduz em 10000 ciclos de loop.

Prumo
fonte
Você já testou isso? Isso é limitado a E / S; portanto, acho que provavelmente não atingirá 100% de utilização da CPU, independentemente de quantas instâncias você iniciar.
Ben Richards
1
Poderia muito bem ser dependente do sistema. Para mim, era consistentemente acima de 97% do total, embora com dwm.exe25% e todos os conhos flutuando entre 5 e 10%. De qualquer forma, a solução vbscript da mgjk é mais elegante.
Bob
O console do Windows é excepcionalmente lento quando se trata de inundar o console. Também causa um atraso significativo na GUI que pode não permitir que você o mate com o gerenciador de tarefas. Observe que Ctrl-C ou Ctrl-Break não funcionará devido aos dados que já estão disponíveis.
Quantum
4

Descobri recentemente e posso recomendar a versão gratuita do HeavyLoad:

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

Realiza um trabalho eficaz no aumento dos níveis da CPU para ver como os aplicativos lidam sob pressão.

AndyUK
fonte
Como eles disseram:can’t install/run any third-party software; only built into Windows
Synetech
Achei esse programa prograt muito interessante. Ele simplesmente funciona e você também pode obter 100% da CPU usando apenas 256Mb de ram (eu o faço em uma ram i5 de 4gb para sua referência). A única opção que sinto falta é o estresse da GPU que o software promete. @AndyUK, você encontrou essa opção?
Erm3nda 06/04/2015
1

A maneira como a maioria das pessoas faz isso é executar algo que processa muito - eu fui recomendado como superpi , embora o hiperpi funcione melhor em um sistema moderno. Calcule um valor absurdamente grande de pi e ele efetivamente executará o processador em carga máxima.

Como alternativa, você pode executar o StressCPU, baseado em fold @ home

Se você precisar manter altas cargas por períodos mais longos, considere algo como dobrar @ home

Journeyman Geek
fonte
A mesma coisa
Synetech 28/03
1

Se você não tem Internet para esse PC ou não consegue se lembrar do site para o teste da CPU, e não gosta de scripts, pode usar o recurso zip incorporado do Windows para compactar um monte de arquivos ou pastas várias vezes simultaneamente .

Clique com o botão direito do mouse no arquivo ou na pasta, aponte para Enviar para e clique em Pasta compactada (zipada)

Você pode fazer os mesmos arquivos / pastas várias vezes ao mesmo tempo, sugiro usar as janelas ou pastas de arquivos de programas.

É possível descompactar os arquivos para outro local e comparar o arquivo com o comando fc para verificar se todos os cálculos ocorreram corretamente. Embora eu sugira que você use um único arquivo grande para isso, pois a sintaxe do comando para comparar arquivos de muitos arquivos com ferramentas padrão do Windows é irritante.

BeowulfNode42
fonte
Impressionado com isso. O loop: goto em um bastão parece muito mais fácil. E evite o uso sem sentido de E / S.
Erm3nda
1

Rápido, fácil, PowerShell

while ($true){}

Um loop infinito sem entradas ou saídas; semelhante à resposta da Quantum, se você tiver vários núcleos, precisará iniciar várias instâncias do PowerShell executando este script

ShaneC
fonte
0

Use o "calc" embutido para calcular 10000! (10000 fatorial). Use duas ou três instâncias para maximizar o máximo de um multi-core.

distância e
fonte
Na verdade ele irá transbordar calc .... há um valor máximo que calc calcularia, é inferior a 10000 mas mais do que 1000.
Diogo
@DiogoRocha Não estourou: recebi 2.8462596809170545189064132121199e + 35659. No entanto, fiz isso em menos de um segundo no meu computador.
Quantum
hmmm. O meu transbordou, na verdade, um fatorial em um cálculo digital é feito matematicamente reduzindo a uma série truncada ... é uma aproximação que reduzirá as cargas da CPU. este é te razão porque você deixou a menos de 1 seg de processamento ..
Diogo
Eu suspeito que estouros ou não, pode depender se a CPU é de 32 ou 64 bits. De qualquer maneira, não vejo como isso levaria muitos ciclos de CPU. Acabei de executar vários fatoriais e o máximo que consegui foi 3248 !, mas nenhum deles fez um pingo no gráfico de CPU do Gerenciador de Tarefas, e por que deveria? Os fatoriais são uma operação matemática muito fácil e muito barata.
Synetech 28/03
O @Synetech Mine transbordou, usando o Windows 7 de 64 bits. Eu usei uma calculadora BigInteger e tem isso como uma resposta porém: pastebin.com/AeCf1s9c
starbeamrainbowlabs
0

Eu publico uma ferramenta chamada MultiCpuLoad .

  • Carga selecionável de 20% a 90%.
  • CPUs selecionáveis.
  • Nenhuma instalação.
  • Não são necessários direitos de administrador.

Requer o .NET Framework 2.0, 3.5 ou 4.5.

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

figolu
fonte