Windowsで高いCPU負荷を生成するにはどうすればよいですか?


76

テストのために、Windows Server 2003で高いCPU負荷を生成する必要があります。ソフトウェアをインストールすることはできませんが、Windowsが提供するもので間に合わせる必要があります。

それを達成する最良の方法は何でしょうか?


4
私は通常、cmd.exeインスタンスの束をで起動しますdir /s C:。一度に10個程度実行すると、大量のディスクI / Oに加えて、非常に高いCPU使用率(i7-2600kのすべてのコアで70%以上)が得られます。完璧ではありませんが、仕事は完了です。
アンドリューランバート

回答:


67

consume.exeWindows Server 2003 Resource Toolkitから、これを簡単に行うことができます。

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

実行されている限り、すべてのコアで100%のCPU時間を使用します。(名前が示すように)他のリソースも消費する可能性があります。


20
リソースツールキットはデフォルトではインストールされません。
ハイドンWVN

2008サーバーはどうですか?
ジョナサン・リオー

@JonathanRioux:同じソリューション、回答にリンクされているリソースツールキットをダウンロードして使用しますconsume.exe。アプリケーションは、デフォルトではWindows Serverのどのバージョンにも含まれていません。
デアホッホステープラー

consume.exe使用して、すべてのディスク容量を消費することもできますconsume -disk-space -time 60。これは非常に便利なツールです!Resource Toolkitの一部としてインストールする場合C:\Program Files (x86)\Windows Resource Kits\Tools、デフォルトでインストールされます。
ベニー

すばらしいツールですが、EXE自体が「通常以下」で開始された場合でも、常に通常の優先度でスレッドを開始することに注意してください。
EM0

39

次のバッチファイルがそれを行います。

@echo off
:loop
goto loop

ただし、複数のコアがある場合は、複数のインスタンスを起動します。

停止するには、コンソールでCtrl+ Cを押します。


それは完璧でした。コアごとに1つの実行。最良のソリューションはシンプルなままです。ありがとうございました。しかし、私は物理的なコアを取得したが、Windows7のスレッドカウンターではないため、1番目のループインスタンスを監視していないnコアをチェックする方法を見つけることができません。(wmic cpu get NumberOfCores2になると、4つのスレッド、2つのコアがあります)。100%のCPU容量に完全に適合する自動バッチを作成すると推測しています。宜しくお願いします。
erm3nda

34

IntelBurnTestPrime95は、まさにこれを行うことで知られています。それらは、それぞれのzipを解凍することで実行できるため、実際にはインストールを必要としませんが、「ネイティブでなければならない」要件を満たしていません。私はオーバークロッカーです。これらはシステムの絶対的な安定性を確保するために使用するツールで、コンピューターから最大限の負荷生成します。

あなたがそれをネイティブなソフトウェアにしたいということに関しては、Windowsにはそのようなことをするツールが実際には付属していませんが、多分上記のバッチファイルは例外です。 。(無限ループは乱雑になる可能性があります。)


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 thingしかし、それは質問の要件です。あなたが提案したツールはそれに適合しないので、答えではなくコメントでなければなりません。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ほとんどない。Windowsには、制御を提供しながらCPUサイクルを簡単に消費できるプログラミングオプションがいくつか含まれています。
Synetech 14年

29

I / OのないVBSのタイトループがそれを行います。コアと同じ数のプロセスが必要です。以下は、Win2k3 VMで100%、デュアルコアホストで50%を使用します(2を起動した場合は100%)

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

タスクマネージャでwscript.exeを終了して終了する必要があります。


私はあなたが置いたコードを本当に理解していません。テストする前にテストしましたか?どうやってテストする必要がありますか。あまり情報を入れません。私はその方法が好きですが、少し説明します。怠lazに対する賞はありません。
erm3nda

これは、スクリプトを作成して実行した結果です。
mgjk

そして、スクリプトはどこにありますか?
erm3nda

2行目と3行目です。
mgjk

申し訳ありませんが、これはバットではなくVBSです。私の失敗。このwscriptは、正確に1つのスレッドを取ります。bat:gotoスクリプトのような複数のインスタンスを実行する必要があります。それはvbsの対応物です。いいね ありがとう。
-erm3nda

9

CPUSTRES.EXE

1996年の「CPUストレス」と呼ばれる古いSysInternalsツールがまだ機能しています。(Windows 10ラップトップで試しました。)

カスタムCPU負荷

GUIベースであり、カスタム強度で最大4つのスレッドを実行できます。これにより、目的のCPU負荷を調整できます。経験則:にActivity設定された1つのスレッドはMaximum約25%のCPUを消費します。たとえば、最大で3つのスレッドを実行すると、CPU負荷は約75%になります。

ポータブル

CPUSTRES.EXEポータブルダウンロードであり、インストールは不要です。


CPUSTRES.EXEもMicrosoftによって推奨されています:blogs.msdn.microsoft.com/vijaysk/2012/10/26/…-非常に良いツールです!
ベニー

これは素晴らしいツールですが、残念ながら4つのスレッドしか起動できません。これは、最新のプロセッサ(ハイパースレッディングを備えたクアッドコア)を最大限に活用するには不十分です。
EM0

5

HyperPi(複数のコアでSuperPiを実行するためのGUI)は、インストールせずに実行するだけで、サーバーにコピーして任意の場所から実行できます。たとえ高速であっても、16個の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.それは専門性と短所です。誰かが「何もインストールできない」と言うとき、それは必ずしも実際にインストールすることを意味するわけではなく、彼らは新しいものを実行できないかもしれません。たとえば、ホワイトリスト上のプログラムを除くすべてのプログラムをブロックするシステムポリシーが存在する場合があります。これにより、「ポータブル」アプリでさえ実行できなくなるため、インストールする必要がないと言っても機能しません。
Synetech 14年

4

実行for /l %a in (0,0,1) do echo aコマンドプロンプト(無限ループ印刷ではa)開始の観察された効果有しconhost.exeローエンド携帯I5のWindows 7上の10〜20%のCPU負荷で動作します。バッチファイルで次のように、これらのいくつかを並列に実行してみてください。

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

CPUが100%で実行される可能性があります。行を追加/削除して調整できます。
警告:これらは無限ループであり、閉じるのに問題がある可能性があります。括弧内の数値は、たとえば(0,1,10000)有限ループの場合に置き換えることができます。(有限ループ内の)最後の数値を調整して、実行時間を調整できます。あなたが疑問に思っている場合、それは基本的に「0から始まり、10000に達するまで1ずつ増加する」ことを意味し、これは10000ループサイクルに変換されます。


これをテストしましたか?これはIOバウンドであるため、インスタンスをいくつ起動しても、CPU使用率が100%に達することはないと考えられます。
ベンリチャーズ

1
システムに依存する可能性があります。私にとっては、全体で一貫して97%を超えていましたがdwm.exe、25%であり、すべてのコンホストは約5〜10%ホバリングしています。いずれにしても、mgjkのvbscriptソリューションはよりエレガントです。
ボブ

Windowsコンソールは、コンソールのフラッディングに関して非常に遅いです。また、タスクマネージャーを使用して強制終了できないGUIの大幅な遅延が発生します。Ctrl-CまたはCtrl-Breakは、既にデータが出力されているため機能しないことに注意してください。
量子

4

私は最近、HeavyLoadの無料版を発見し、推奨できます。

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

CPUレベルを上げて、アプリケーションが強迫状態でどのように対処するかを確認するのに効果的な仕事をします。


彼らが言ったように:can’t install/run any third-party software; only built into Windows
Synetech 14年

私はそのプログラムが非常に興味深いことに気付きました。それは単に機能し、256MbのRAMのみを使用して100%のCPUを取得することもできます(参考までにi5 4gb RAMで行います)。私が見逃している唯一のオプションは、ソフトウェアが約束するGPUストレスです。@AndyUK、あなたはそのオプションを見つけましたか?
erm3nda

1

ほとんどの人がそれを行う方法は、処理の負荷をかけるものを実行することです-hyperpiが推奨されましたが、hyperpiは最新のシステムでよりうまく機能するかもしれません。piのばかばかしいほど大きな値を計算すると、全負荷で効果的にプロセッサが実行されます。

または、folding @ homeに基づくStressCPUを実行できます。

長期間にわたって高負荷を維持する必要がある場合は、folding @ homeなどを検討してください。



1

そのPCにインターネットがない場合、またはそのCPUテストのWebサイトを思い出せず、スクリプトを作成したくない場合は、zip機能に組み込まれたウィンドウを使用して、多数のファイルまたはフォルダーを同時に圧縮できます。

ファイルまたはフォルダーを右クリックし、[送信]をポイントして、[圧縮(zip形式)フォルダー]をクリックします。

同じファイル/フォルダーを同時に複数回実行できます。ウィンドウまたはプログラムファイルフォルダーを使用することをお勧めします。

その後、ファイルを別の場所に解凍し、fcコマンドとファイル比較を行って、すべての計算が正しく行われたことを確認できます。標準のWindowsツールを使用して多くのファイルをファイル比較するためのコマンド構文は煩わしいため、このために1つの大きなファイルを使用することをお勧めします。


それに感銘を受けました。コウモリの:gotoループはとても簡単に聞こえます。ナンセンスなI / Oの使用を避けてください。
erm3nda

1

すばやく簡単なPowerShell

while ($true){}

入力または出力のない無限ループ。クアンタムの答えと同様に、複数のコアがある場合、このスクリプトを実行するPowerShellの複数のインスタンスを起動する必要があります


0

組み込みの「計算」を使用して10000を計算します!(10000階乗)。2つまたは3つのインスタンスを使用して、マルチコアを最大化します。


実際にはcalcがオーバーフローします。...calcが計算する最大値があり、10000未満ですが1000を超えています
。-ディオゴ

@DiogoRochaオーバーフローしませんでした:2.8462596809170545189064132121199e + 35659を受け取りました。しかし、私のコンピューターでは1秒未満で完了しました。
量子

うーん。私はオーバーフローしました、実際にはデジタル計算の階乗は切り捨てられたシリーズに数学的に削減されています...それはCPU負荷を減らす近似です。1秒未満の処理を残したため、これが3つの理由です
。-ディオゴ

オーバーフローするかどうかは、CPUが32ビットであるか64ビットであるかに依存する可能性があります。いずれにせよ、それがどのように多くのCPUサイクルを占有するかわかりません。いくつかの階乗を行ったところ、最高の3248でしたが、タスクマネージャーのCPUグラフにブリップさえしませんでした。階乗は非常に簡単で非常に安価な数学的操作です。
Synetech 14年

@Synetech Mineは、Windows 7 64ビットを使用してオーバーフローしました。私はBigIntegerの計算機を使用して答えているかのようにこれを得た:pastebin.com/AeCf1s9c
starbeamrainbowlabs

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.