เหตุใดการแยก CPU ของ top (ตัวเลือก 1) ในโหมด non-irix ที่เป็นค่าเริ่มต้นแสดงผลลัพธ์ที่ขัดแย้งกัน


0

ผมใช้มาตรฐานบางอย่างเกี่ยวกับส้อมต่างๆและผมสังเกตเห็นค่าที่ขัดแย้งกันบางอย่างเมื่อทำงานbitcoindtop

ในภาพหน้าจอด้านล่างมีการแพร่กระจายของการใช้ cpu ประมาณ ~ 30% ใน 8 cpus แต่ละรายการ แต่ในมุมมองรายการด้านล่างbitcoindแสดง 105% CPU ระบุว่านี่ไม่ได้อยู่ในโหมด Irix นั่นหมายความว่าbitcoindใช้ 100% ของ 1 cpu แต่มันไม่ได้แสดงวิธีดังกล่าวในการวิเคราะห์ด้านบน นอกจากนี้กระบวนการ Python ที่ฉันกำลังเรียกใช้รายงาน ~ 40% ในการอ่านข้อมูลด้านล่าง แต่ไม่มีซีพียูอยู่ด้านบนอ่าน ~ 40%

เครื่องมี 8 คอร์จริงโดยใช้ Ubuntu ซึ่งไม่ได้จำลองเสมือน

เกิดอะไรขึ้นที่นี่? bitcoind ด้านบน

สำหรับการเปรียบเทียบนี่คือการทำงานstressใน 8 ซีพียูที่มีtopจอแสดงผลเดียวกัน ขอให้สังเกตว่า 8 cpus แต่ละอันมีการใช้ประโยชน์ 100% และ 8 stressกระบวนการแต่ละแห่งมีรายงาน 100% ความเครียดด้านบน

ปรับปรุง: แน่นอนตัวแปรที่ฉันกำลังทดสอบคือมัลติเธรดและHตัวเลือกที่แสดงให้เห็นถึงความล้มเหลวขอบคุณ @TheGeek

ด้านบน-H


1
ไม่มีปัญหาอย่างนี้ คุณมีซีพียูที่ใช้งานได้ 800% ส่วนบนสร้างอัตราส่วนระหว่างเวลา CPU ที่กระบวนการของคุณใช้กับเวลา CPU ที่คอร์ CPUi สามารถจัดการได้ หากคุณมีกระบวนการแบบมัลติเธรดเช่นการทำเหมือง crypto กระบวนการทั้งหมดหากมีการเขียนที่ดีอาจใช้การแพร่กระจาย 105% ระหว่างซีพียูคอร์ทั้งหมดของคุณ ไม่มีปัญหาที่นี่
Kiwy

@kiwy โอ้ไม่มีปัญหาที่นี่ปัญหาอยู่ที่ความเข้าใจของฉันออกเช่นPICNIC
y3sh

คำตอบ:


1

เป็นเพราะ coind ของคุณมีหลายเธรด กดตัวอักษร "H" ด้านบนเพื่อเปิดโหมดเธรด นี่จะแสดงเธรดลูกของ bitcoind จากนั้นคุณจะเห็นการแพร่กระจายของการใช้งาน CPU

คุณยังสามารถลอง gstack เพื่อดูรายการชุดข้อความ

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