อย่างที่คุณได้พูดไปแล้วคุณสามารถกดHเพื่อแสดงกระทู้ผู้ใช้ได้
เพียงเพื่ออ้างอิงในอนาคต (และเพื่อความสนุกสนาน) ให้การใช้งาน CPU คำนวณของ!
พื้นหลังเล็กน้อย:
ในระบบปฏิบัติการที่ทันสมัยมี Scheduler มันมีจุดมุ่งหมายเพื่อให้แน่ใจว่ากระบวนการและเธรดทั้งหมดจะได้รับส่วนแบ่งที่ยุติธรรมของเวลาในการคำนวณ ฉันจะไม่จัดตารางเวลามากเกินไป (มันซับซ้อนจริงๆ) แต่ในท้ายที่สุดมีสิ่งที่เรียกว่าคิววิ่ง นี่คือที่คำแนะนำทั้งหมดของกระบวนการทั้งหมดเข้าแถวเพื่อรอการเลี้ยวของพวกเขาที่จะดำเนินการ
กระบวนการใด ๆ ที่ทำให้มันเป็น "งาน" ในคิวการทำงานและเมื่อตัวประมวลผลพร้อมแล้วมันก็จะเปิดและประมวลผล ตัวอย่างเช่นเมื่อโปรแกรมเข้าสู่โหมดสลีปโปรแกรมจะลบตัวเองออกจากคิวการทำงานและกลับสู่ "จุดสิ้นสุดของบรรทัด" เมื่อพร้อมที่จะทำงานอีกครั้ง
การเรียงลำดับในคิวนี้เกี่ยวข้องกับลำดับความสำคัญของกระบวนการ(เรียกอีกอย่างว่า "ค่าที่ดี" - นั่นคือกระบวนการดีเกี่ยวกับทรัพยากรระบบ)
ความยาวของคิวจะกำหนดโหลดของระบบ โหลด 2.5 เช่นหมายความว่ามี 2.5 คำแนะนำสำหรับการเรียนการสอนทุก CPU สามารถจัดการกับในเวลาจริง
บน Linux โดยวิธีการโหลดนี้จะคำนวณในช่วงเวลา 10ms (โดยค่าเริ่มต้น)
ตอนนี้เข้าสู่ค่าร้อยละของการใช้งาน CPU:
ลองนึกภาพคุณมีสองนาฬิกาหนึ่งเรียกว่าt
และมันหมายถึงเวลาจริง มันวัดวินาทีสำหรับทุกวินาที c
สายนาฬิกาเราอื่น ๆ มันจะทำงานถ้ามีการประมวลผลที่ต้องทำ ซึ่งหมายความว่าเฉพาะเมื่อกระบวนการคำนวณสิ่งที่นาฬิกาทำงาน นี่เรียกอีกอย่างว่าเวลา CPU ทุกกระบวนการในระบบ 'มี' หนึ่งในนั้น
ขณะนี้สามารถคำนวณการใช้ประโยชน์ของตัวประมวลผลสำหรับกระบวนการเดียว:
หรือสำหรับกระบวนการทั้งหมด:
บนเครื่องมัลติคอร์สิ่งนี้อาจส่งผลให้มีค่า 3.9 แน่นอนเพราะ CPU สามารถคำนวณการคำนวณสี่วินาทีทุก ๆ วินาทีหากใช้อย่างสมบูรณ์แบบ
Wikipedia ให้ตัวอย่างนี้:
แอปพลิเคชันซอฟต์แวร์ที่ทำงานในเครื่อง 6-CPU UNIX สร้างกระบวนการ UNIX สามกระบวนการเพื่อตอบสนองความต้องการของผู้ใช้ กระบวนการทั้งสามนี้แต่ละกระบวนการสร้างสองเธรด การทำงานของแอพพลิเคชั่นซอฟต์แวร์มีการกระจายอย่างเท่าเทียมกันใน 6 หัวข้ออิสระของการดำเนินการที่สร้างขึ้นสำหรับแอปพลิเคชัน หากไม่มีการรอทรัพยากรที่เกี่ยวข้องเวลา CPU ทั้งหมดคาดว่าจะเป็นหกครั้งตามเวลาจริง
นี่เป็นตัวอย่างข้อมูลขนาดเล็กของงูหลาม
>>> import time
>>> t = time.time()
>>> c = time.clock()
>>> # the next line will take a while to compute
>>> tuple(tuple(i**0.2 for i in range(600)) for i in range(6000))
>>> print (time.clock() / (time.time() - t)) * 100, "%"
66.9384021612 %
ในโลกที่สมบูรณ์แบบคุณสามารถอนุมานได้ว่าภาระของระบบคือ 100 - 66.93 = 33,1% (แต่ในความเป็นจริงที่ผิดเพราะสิ่งที่ซับซ้อนเช่นรอ I / O การตั้งเวลาไร้ประสิทธิภาพเป็นต้น)
ในทางตรงกันข้ามกับภาระการคำนวณดังกล่าวจะเสมอส่งผลให้มีค่าระหว่าง 0 และหมายเลขของตัวประมวลผลคือระหว่าง 0 และ 1 หรือ 0 ถึง 100% ขณะนี้ไม่มีวิธีแยกความแตกต่างระหว่างเครื่องที่ใช้งานสามงานใช้ซีพียู 100% และเครื่องจักรที่ใช้งานนับล้านงานแทบจะไม่ได้ทำงานใด ๆ กับงานเดี่ยว ๆ เลยเช่นกันที่ 100% ตัวอย่างเช่นหากคุณพยายามสร้างความสมดุลของกระบวนการในคอมพิวเตอร์หลาย ๆ เครื่องการใช้ cpu นั้นไม่ได้ผล โหลดเป็นสิ่งที่คุณต้องการมี
ในความเป็นจริงตอนนี้มีมากกว่าหนึ่งในนาฬิกาเวลาการประมวลผล มีอีกอย่างหนึ่งรอ I / O เช่น ดังนั้นคุณสามารถคำนวณการใช้ทรัพยากร I / O ได้เช่นกัน
สิ่งนี้อาจไม่มีประโยชน์เกี่ยวกับคำถามเดิม แต่ฉันหวังว่ามันน่าสนใจ :)