คอมพิวเตอร์ของฉันสามารถใช้พลังการประมวลผล PC 300% ได้อย่างไร


65

ฉันเล่นกับสคริปต์และฉันก็ถูกพาไป (มันยังคงทำงานอยู่ในขณะนี้และคอมพิวเตอร์ของฉันยังไม่ตาย) ฉันใช้สคริปต์ซ้ำ 17 ครั้ง (โดยตั้งใจให้คอมพิวเตอร์พัง)

เมื่อดูที่การตรวจสอบกิจกรรมฉันเห็นว่าแต่ละกระบวนการของ Python มี pid ที่ไม่เหมือนใครและดูเหมือนว่าพวกเขาใช้พลังงานการประมวลผลของฉันประมาณ 17-20% ในแต่ละกระบวนการ ... เป็นไปได้อย่างไร? คอมพิวเตอร์ของฉันเติบโตอย่างน่าอัศจรรย์ด้วยกำลัง 200% และทำลายกฎของอุณหพลศาสตร์ที่ไหนสักแห่งใช่หรือไม่?

ป้อนคำอธิบายภาพที่นี่


28
300% ของ CPU = 3 ของ CPU
user253751

7
"ระดับพลังงาน 400%"
Nitish

เตือนฉันถึงเรื่องราวทั้งหมดของ Star Trek ตอนที่เครื่องยนต์ Warp ควบคุมไม่ได้ ...
Daniel

นี่คือการโอเวอร์คล็อกที่รุนแรง !!
Andrew Grimm

คำตอบ:


101

บน OS X เช่นเดียวกับ * nixes อื่น ๆ โหลด CPU ถูกวัดต่อคอร์ตัวประมวลผลเสมือน หากคุณมีหลายรายการ - คุณสามารถรวมกันแล้ว 200% และรวมกันมากขึ้นเมื่อโหลดเต็ม

สิ่งนี้แตกต่างจาก Windows และอาจเป็นระบบอื่น ๆ ที่คำนวณภาระของ CPU ต่อ CPU ทั้งหมด (หรือ CPU - ฉันจำไม่ได้ว่ามันทำงานอย่างไรเมื่อมีตัวประมวลผลทางกายภาพหลายตัว)


21
คำตอบนี้ถูกต้องสำหรับบางแพลตฟอร์มเท่านั้น! ตัวอย่างเช่น Windows รายงานการโหลด CPU ทั้งหมดแทนที่จะเป็นเปอร์เซ็นต์ของคอร์เดียว
fabspro

2
เป็นที่น่าสังเกตว่าการแสดงการโหลดทศนิยม (เช่น 0.5 หรือ 2.4) ตามที่รายงานโดยตัวอย่างเช่นคำสั่ง uptime ไม่ใช่ผลรวมของเปอร์เซ็นต์การใช้งานแต่ละคอร์ ฉันไม่แน่ใจว่าแอปนี้ทำให้ค่าปกติเป็นเท่าใด
Sebb

3
@Sebb โหลดเฉลี่ย (LA) เป็นจำนวนเฉลี่ยของกระบวนการรอสำหรับการดำเนินการที่พวกเขาอาจจะรอให้ IO, ไม่จำเป็นต้องมีซีพียู
Vasfed

3
@ Random832 จาก linux man - man7.org/linux/man-pages/man1/uptime.1.html : "ค่าเฉลี่ยของโหลดระบบเป็นจำนวนเฉลี่ยของกระบวนการที่อยู่ในสถานะ runnable หรือ uninterruptable กระบวนการในสถานะ runnable กำลังใช้ CPU หรือกำลังรอการใช้ CPU กระบวนการในสถานะที่ไม่สามารถหยุดชะงักกำลังรอการเข้าถึง I / O บางอย่างเช่นกำลังรอดิสก์ "
Vasfed

4
@slebetman โหลดเฉลี่ยไม่เกี่ยวกับเวลา cpu แต่ความยาวคิวตัวอย่างเช่นดูserverfault.com/a/524818
Vasfed

81

OS X และ Linux และระบบปฏิบัติการ UNIX อื่น ๆ (หรือมากกว่าเครื่องมือทั่วไปในระบบเหล่านี้) แสดงการใช้งาน CPU แตกต่างจาก Windows บน Windows 100% หมายถึง“ ทรัพยากร CPU ทั้งหมดที่ใช้” บน Linux หมายความว่าหนึ่ง "เธรด" (เหมือนใน Hyper-threading) ไม่ว่างอย่างสมบูรณ์ ด้วยเหตุนี้จึงสามารถเข้าถึงได้(Number of Threads per Core) * (Number of Cores per CPU) * (Number of CPUs)ทั้งหมด

แม้ว่าจะไม่เกี่ยวข้องกันทั้งหมดข้อเท็จจริงที่น่าสนใจอีกข้อหนึ่งคือ: Windows 10 จะทำให้การใช้งาน CPU กลับสู่ระดับปกติโดยใช้สถานะการควบคุมปริมาณของ CPU ในปัจจุบัน ดังนั้น CPU 2 GHz ที่ทำงานแบบ throttled ที่ 1 GHz จะมีมากถึง 50% เท่านั้น


7
ความจริงที่น่าสนใจ. :)
Hennes

7
และด้วย Turbo Boost Windows จะรายงานว่า CPU ทำงานเกิน 100%
Martheen Cahya Paulo

ฉันคิดว่าเป็นวิธี BSD ไม่ใช่วิธีทั่วไป * ฉันเห็นสิ่งเดียวกันบน Mac และกล่อง FreeBSD ของฉัน
JDługosz

1
@ JDługoszฉันค่อนข้างแน่ใจว่ามันเป็นจริงของ Linux เช่นกันอย่างน้อยก็สำหรับเครื่องมือบางอย่าง ฉันค่อนข้างแน่ใจว่าtopมีพฤติกรรมเช่นนี้
สร้างใหม่

12

ตามที่ระบุไว้แล้วในคำตอบหลายคำ Mac แสดงเปอร์เซ็นต์ CPU ของแต่ละกระบวนการเป็น 'เปอร์เซ็นต์ของหนึ่งคอร์' ดังนั้นคุณควรหารด้วยจำนวนของคอร์ [รวมถึง HT เป็น 'double']

หากคุณไม่แน่ใจว่าคุณมีแกนประมวลผลเสมือนเท่าใด Cmd ⌘ 3 จะแสดงบานหน้าต่างประวัติ CPU ของ Activity Monitor ซึ่งคุณสามารถนับลายเส้นได้)

ป้อนคำอธิบายรูปภาพที่นี่

ด้านล่างตรงที่คุณตัดภาพเป็นข้อมูลที่คุณต้องการตรวจสอบการใช้งานจริงทั้งหมดอย่างรวดเร็วสำหรับระบบ:, ผู้ใช้: & ไม่ได้ใช้งาน: ในนั้นผลรวมของคุณอยู่ที่ 100%

ป้อนคำอธิบายรูปภาพที่นี่


4
จริงเหรอ? 24 คอร์ ???? ฉันเพิ่งจะได้ 4 :) ขอบคุณจริง ๆ ที่แบ่งปันสิ่งนี้!: puu.sh/nNrHU/f2abb55dc7.png
Frankenmint

5
อ่า ... ใช่ - มันคือ Mac Pro 5,1 - สุดท้ายของ "ชีส - แกรเตอร์" Xeons 6-core คู่ [+ HT];)
Tetsujin

6

การตรวจสอบกิจกรรมไม่ได้วัดความสามารถในการประมวลผลของแต่ละแอป / กระบวนการที่ใช้ แต่เพียงประมาณโดยใช้อัลกอริทึม ดังนั้นจึงไม่ถูกต้อง ...

นอกจากนี้ตามที่ @Vasfed ชี้ให้เห็นการใช้ CPU จะถูกวัดต่อคอร์โปรเซสเซอร์ หลายแกนอาจหมายถึงการใช้งานที่สูงกว่า 100% ...

บางครั้งคนที่เกินบรรยายสะดุดกับปรากฏการณ์นี้และรู้สึกงุนงงจน Superuser เข้ามาช่วยเขา ... ; D


@underscore_d ใช่ ... แต่เมื่อฉันตอบมีเพียงคำตอบเดียวเท่านั้น อื่น ๆ (เป็นที่ยอมรับดีกว่า) คำตอบที่ถูกโพสต์ในภายหลัง ...
rahuldottech

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