ฉันจะสร้างโหลด CPU สูงบน Windows ได้อย่างไร


76

สำหรับวัตถุประสงค์ในการทดสอบฉันต้องสร้าง CPU ที่โหลดสูงใน Windows Server 2003 ฉันไม่สามารถติดตั้งซอฟต์แวร์ใด ๆ ได้ แต่ต้องทำกับสิ่งที่ Windows ให้ไว้

อะไรจะเป็นวิธีที่ดีที่สุดในการบรรลุเป้าหมายนั้น?


4
ฉันมักจะเพียงแค่เปิดพวงของอินสแตนซ์ cmd.exe dir /s C:กับ รับ 10 หรือมากกว่านั้นของผู้ที่ทำงานในครั้งเดียวและคุณได้รับการใช้งาน CPU สูงมาก (70% + ในทุกคอร์ของ i7-2600k ของฉัน) นอกเหนือจากดิสก์ I / O จำนวนมาก ไม่สมบูรณ์แบบ แต่ทำให้งานเสร็จ
Andrew Lambert

คำตอบ:


67

consume.exeจากชุดเครื่องมือทรัพยากร Windows Server 2003สามารถทำได้อย่างง่ายดาย

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

ใช้เวลา CPU 100% ในทุกคอร์ตราบใดที่รัน นอกจากนี้ยังสามารถใช้ทรัพยากรอื่น ๆ (ตามที่ชื่อมีความหมาย)


20
Resource Toolkit ไม่ได้ติดตั้งตามค่าเริ่มต้น
HaydnWVN

แล้วเซิร์ฟเวอร์ปี 2008 ล่ะ?
Jonathan Rioux

@JonathanRioux: consume.exeวิธีการแก้ปัญหาเดียวกันดาวน์โหลดเครื่องมือทรัพยากรที่เชื่อมโยงในคำตอบและการใช้งาน แอปพลิเคชันไม่รวมอยู่ใน Windows Server ทุกรุ่นโดยค่าเริ่มต้น
Der Hochstapler

นอกจากนี้ยังสามารถใช้ในการใช้พื้นที่ดิสก์ทั้งหมดของคุณโดยใช้consume.exe consume -disk-space -time 60มันเป็นเครื่องมือที่มีประโยชน์มาก! เมื่อทำการติดตั้งเป็นส่วนหนึ่งของ Resource Toolkit จะทำการติดตั้งC:\Program Files (x86)\Windows Resource Kits\Toolsโดยอัตโนมัติ
Benny Neugebauer

เครื่องมือที่ดี แต่โปรดทราบว่ามันจะเริ่มเธรดที่ระดับความสำคัญปกติเสมอแม้ว่าตัว EXE จะเริ่มต้นที่ "ต่ำกว่าปกติ"
EM0

39

ไฟล์แบตช์ต่อไปนี้ทำมัน:

@echo off
:loop
goto loop

อย่างไรก็ตามหากคุณมีหลายคอร์คุณจะต้องเริ่มต้นหลายอินสแตนซ์

หากต้องการหยุดให้กดCtrl+ Cในคอนโซล


นั่นเป็นสิ่งที่สมบูรณ์แบบ เพียงหนึ่งการดำเนินการต่อคอร์ ทางออกที่ดีที่สุดยังคงง่าย ขอขอบคุณ. แต่ฉันไม่สามารถหาวิธีตรวจสอบ n คอร์ที่ไม่ได้ดูอินสแตนซ์วนรอบที่ 1% ได้เพราะฉันมีฟิสิคัลและคอร์ แต่ไม่ใช่เธรดตัวนับบน Windows7 ของฉัน ( wmic cpu get NumberOfCoresน่าจะเป็น 2 และฉันมี 4 กระทู้ 2 คอร์) ฉันคาดเดาว่าจะสร้างชุดอัตโนมัติที่พอดีกับความจุ CPU 100% ด้วยความเคารพ.
erm3nda

34

IntelBurnTestและPrime95เป็นที่รู้จักในการทำสิ่งนี้ พวกเขาไม่ต้องการการติดตั้งเนื่องจากสามารถทำงานได้ด้วยการเปิดรหัสไปรษณีย์ตามลำดับ แต่ไม่ตอบสนองความต้องการ "ต้องเป็นแบบดั้งเดิม" ของคุณ ฉันเป็นโอเวอร์คล็อกเกอร์และนี่คือเครื่องมือที่ฉันใช้เพื่อรับรองความเสถียรของระบบแน่นอนพวกเขาจะสร้างภาระสูงสุดจากคอมพิวเตอร์ของคุณ

สำหรับความต้องการของคุณที่จะเป็นซอฟต์แวร์แบบดั้งเดิม - 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

29

การวนซ้ำที่แน่นหนาใน VBS ที่ไม่มี I / O จะทำได้ คุณจะต้องมีกระบวนการให้มากที่สุดเท่าที่แกน ต่อไปนี้จะใช้ 100% กับ Win2k3 VM ของฉันหรือ 50% สำหรับโฮสต์ดูอัลคอร์ของฉัน (100% ถ้าฉันเปิดใช้ 2)

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

คุณจะต้องฆ่า wscript.exe ในตัวจัดการงานเพื่อจบมัน


ฉันไม่เข้าใจรหัสที่คุณใส่จริงๆ คุณทดสอบก่อนทดสอบหรือไม่ ฉันจะต้องทดสอบมันอย่างไร คุณใส่ข้อมูลไม่มาก ฉันชอบวิธีนี้ แต่อธิบายหน่อย ไม่มีรางวัลสำหรับความขี้เกียจ
erm3nda

นั่นคือผลลัพธ์ของการสร้างสคริปต์และเรียกใช้
mgjk

และสคริปต์อยู่ที่ไหน?
erm3nda

มันคือบรรทัดที่ 2 และ 3
mgjk

ฉันขอโทษนี่คือ vbs ไม่ใช่ bat ความล้มเหลวของฉัน wscript นี้ใช้เวลา 1 เธรดอย่างแน่นอน คุณจะต้องเรียกใช้หลาย ๆ ครั้งเช่น bat: goto script มันเป็นคู่หู vbs ดี ขอบคุณ
erm3nda

9

CPUSTRES.EXE

มีเครื่องมือ SysInternalsเก่าจากปี 1996 เรียกว่า "CPU Stress"ที่ยังใช้งานได้ (ฉันเพิ่งลองใช้บนแล็ปท็อป Windows 10)

โหลด CPU แบบกำหนดเอง

มันอิงกับ GUI และอนุญาตให้คุณรันเธรดได้สูงสุดสี่เธรดที่ความเข้มที่กำหนดเอง สิ่งนี้ช่วยให้คุณปรับแต่งโหลด CPU ที่ต้องการ ตามกฎทั่วไป: หนึ่งเธรดที่มีการActivityตั้งค่าไว้Maximumจะใช้ CPU ประมาณ 25% ตัวอย่างเช่น: ถ้าคุณรันสามเธรดที่สูงสุดโหลด CPU ของคุณจะอยู่ที่ประมาณ 75%

แบบพกพา

CPUSTRES.EXEเป็นการดาวน์โหลดพกพาและไม่จำเป็นต้องติดตั้ง


CPUSTRES.EXE ยังได้รับการแนะนำโดย Microsoft: blogs.msdn.microsoft.com/vijaysk/2012/10/26/… - เครื่องมือที่ดีมาก!
Benny Neugebauer

มันเป็นเครื่องมือที่ดี แต่น่าเสียดายที่อนุญาตให้เริ่ม 4 เธรดเท่านั้นซึ่งไม่เพียงพอที่จะใช้โปรเซสเซอร์ที่ทันสมัยที่สุด (quad-core ที่มี hyper-threading)
EM0

5

HyperPi (GUI เพื่อเรียกใช้ SuperPi บนหลายคอร์) สามารถรันได้โดยไม่ต้องติดตั้งเพียงคัดลอกไปยังเซิร์ฟเวอร์และเรียกใช้จากตำแหน่งใดก็ได้ แม้ในบางสิ่งที่รวดเร็วคุณสามารถโหลดคอร์ทั้งหมดได้ในเวลาไม่กี่ชั่วโมงด้วยการพูดว่าการคำนวณแบบ 32 M พร้อมกัน 16 ครั้ง


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.นั่นเป็นเรื่องทางเทคนิคและ nitpick เมื่อมีคนพูดว่า "ไม่สามารถติดตั้งอะไรก็ได้" นั่นไม่ได้แปลว่าการติดตั้งจริง ๆ แล้วพวกเขาอาจไม่สามารถเรียกใช้สิ่งใหม่ได้ ตัวอย่างเช่นอาจมีนโยบายระบบที่บล็อกโปรแกรมทั้งหมดยกเว้นที่อยู่ในรายการขาว ซึ่งจะป้องกันไม่ให้แม้แต่แอป "พกพา" ทำงานดังนั้นการบอกว่าคุณไม่จำเป็นต้องติดตั้งแอปพลิเคชันจะไม่ทำงาน
Synetech

4

การทำงานfor /l %a in (0,0,1) do echo aในพรอมต์คำสั่ง (การพิมพ์วนซ้ำไม่สิ้นสุดa) มีผลกระทบที่สังเกตได้จากการเริ่มconhost.exeทำงานที่โหลด CPU 10-20% ใน Windows 7 บนมือถือระดับต่ำสุด i5 คุณสามารถลองใช้หลาย ๆ ตัวแบบขนานตัวอย่างเช่นต่อไปนี้ในไฟล์แบตช์:

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 เพิ่มขึ้น 1 จนกว่าจะถึง 10,000" ซึ่งแปลเป็น 10,000 รอบวง


คุณเคยทดสอบสิ่งนี้หรือไม่? นี่คือ IO ที่ถูกผูกไว้ดังนั้นฉันคิดว่ามันอาจจะไม่ถึงการใช้งาน CPU 100% ไม่ว่าคุณจะเปิดตัวกี่ครั้งก็ตาม
Ben Richards

1
มันขึ้นอยู่กับระบบ สำหรับฉันมันสูงกว่า 97% อย่างต่อเนื่องถึงแม้ว่าจะdwm.exeอยู่ที่ 25% และโฮสทั้งหมดล้วนโฮลดิ้งประมาณ 5-10% ในกรณีใด ๆ โซลูชัน vbscript ของ mgjk นั้นสง่างามกว่า
Bob

คอนโซล 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

ฉันพบว่าโปรแกรม prograt น่าสนใจมาก มันใช้งานได้ง่ายและคุณยังสามารถรับ CPU 100% โดยใช้ RAM เพียง 256Mb (ฉันใช้ RAM i5 4gb กับการอ้างอิงของคุณ) ตัวเลือกเดียวที่ฉันพลาดคือความเครียดของ GPU ที่ซอฟต์แวร์สัญญาไว้ @AndyUK คุณพบตัวเลือกนั้นหรือไม่
erm3nda

1

วิธีที่คนส่วนใหญ่ทำคือเรียกใช้บางสิ่งที่ทำให้เกิดการประมวลผล - ฉันแนะนำsuperpiแม้ว่าhyperpiอาจทำงานได้ดีกว่าสำหรับระบบที่ทันสมัย คำนวณค่า pi ที่มีขนาดใหญ่อย่างไร้เหตุผลและมันจะเรียกใช้ตัวประมวลผลอย่างเต็มประสิทธิภาพ

หรือคุณสามารถเรียกใช้StressCPUซึ่งเป็นพื้นฐานของการพับ @ home

หากคุณต้องการให้มีการโหลดสูงเป็นระยะเวลานานลองพิจารณาบางอย่างเช่นfolding @ home



1

หากคุณไม่มีอินเทอร์เน็ตสำหรับพีซีเครื่องนั้นหรือไม่สามารถจำเว็บไซต์สำหรับการทดสอบ cpu นั้นและคุณไม่รู้สึกเหมือนการเขียนสคริปต์คุณสามารถใช้คุณลักษณะซิปในตัวของ windows เพื่อบีบอัดไฟล์หรือโฟลเดอร์หลาย ๆ ไฟล์พร้อมกัน .

คลิกขวาที่ไฟล์หรือโฟลเดอร์ชี้ไปที่ส่งไปยังแล้วคลิกบีบอัด (บีบอัด) โฟลเดอร์

คุณสามารถทำไฟล์ / โฟลเดอร์เดียวกันหลาย ๆ ครั้งในเวลาเดียวกันผมแนะนำให้ใช้โฟลเดอร์ windows หรือโปรแกรมไฟล์

จากนั้นคุณสามารถคลายซิปไฟล์ไปยังตำแหน่งอื่นและทำการเปรียบเทียบไฟล์กับคำสั่ง fc เพื่อตรวจสอบว่าการคำนวณทั้งหมดเกิดขึ้นอย่างถูกต้องหรือไม่ แม้ว่าฉันจะขอแนะนำให้คุณใช้ไฟล์ขนาดใหญ่เพียงอันเดียวสำหรับเรื่องนี้เนื่องจากไวยากรณ์คำสั่งสำหรับการเปรียบเทียบไฟล์ของไฟล์จำนวนมากที่มีเครื่องมือ windows มาตรฐานเป็นที่น่ารำคาญ


ประทับใจกับสิ่งนั้น The: goto loop บนไม้ค้างคาวฟังดูง่ายกว่ามาก และหลีกเลี่ยงการใช้ I / O ไร้สาระ
erm3nda

1

รวดเร็วง่าย PowerShell

while ($true){}

วงวนไม่สิ้นสุดที่ไม่มีอินพุตหรือเอาต์พุต เช่นเดียวกับคำตอบของ Quantum หากคุณมีหลายคอร์คุณต้องเริ่มต้น PowerShell หลายอินสแตนซ์โดยใช้สคริปต์นี้


0

ใช้ "คำนวณ" ในตัวเพื่อคำนวณ 10,000! (10,000 แฟคทอเรียล) ใช้สองหรือสามอินสแตนซ์เพื่อขยายมัลติคอร์ให้สูงสุด


จริง ๆ แล้วมันจะล้น Calc .... มีค่าสูงสุดที่คำนวณได้จะน้อยกว่า 10,000 แต่มากกว่า 1,000
Diogo

@DiogoRocha ไม่ล้น: ฉันได้ 2.8462596809170545189064132121199e + 35659 อย่างไรก็ตามทำได้ในเวลาไม่ถึงวินาทีบนคอมพิวเตอร์ของฉัน
ควอนตัม

อืมม ของฉันล้นออกมาจริง ๆ แล้วแฟคทอเรียลในเครื่องคิดเลขดิจิตอลถูกทำให้ลดลงเป็นซีรีย์ที่ถูกตัดให้สั้นลง ... มันเป็นการประมาณที่จะลดโหลดซีพียู นี่เป็นเหตุผลที่เจ้าเพราะคุณซ้ายน้อยกว่า 1 วินาทีของการประมวลผล ..
Diogo

ฉันสงสัยว่ามันล้นหรือไม่ขึ้นอยู่กับว่า CPU เป็น 32 บิตหรือ 64 บิต ไม่ว่าจะด้วยวิธีใดฉันจะไม่เห็นว่าจะใช้ CPU มากเท่าใด ฉันทำแฟคทอเรียลหลาย ๆ อันและที่สูงที่สุดที่ฉันสามารถทำได้คือ 3248! แต่ก็ไม่มีใครทำเลยแม้แต่การทำกราฟซีพียูของ Task Manager และทำไมมันถึงดี แฟกทอเรียลเป็นงานคณิตศาสตร์ที่ง่ายและราคาถูกมาก
Synetech

@Synetech Mine โอเวอร์โฟลว์โดยใช้ Windows 7 64 บิต ฉันใช้เครื่องคิดเลข biginteger และได้คำตอบนี้: pastebin.com/AeCf1s9c
starbeamrainbowlabs

0

ฉันเผยแพร่เครื่องมือดังกล่าวมีชื่อว่าMultiCpuLoad

  • โหลดที่เลือกได้จาก 20% ถึง 90%
  • ซีพียูที่เลือกได้
  • ไม่มีการติดตั้ง
  • ไม่มีสิทธิ์ของผู้ดูแลระบบ

ต้องใช้. NET Framework 2.0, 3.5 หรือ 4.5

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.