4
อะไรคือวิธีที่ยุติธรรมที่สุดในการตรวจสอบเวลา CPU ทั้งหมด - ต่อผู้ใช้หนึ่งราย
ในระบบผู้ใช้หลายคนฉันต้องการวัดการใช้งาน CPU ของผู้ใช้แต่ละคนในไม่กี่วินาทีของเวลา cpu สำหรับจุดประสงค์ของการวัดนี้ฉันคิดว่าถ้า PID เป็นของผู้ใช้ผู้ใช้รายนี้ทำให้เวลา CPU - นั่นคือฉันไม่สนใจ daemons และเคอร์เนล ขณะนี้ฉันกำลังทำเช่นนี้ทุกห้าวินาที: รับผู้ใช้แต่ละคนและ PID ที่พวกเขากำลังทำงานผ่าน ps aux สำหรับ PID แต่ละอันจะได้รับxผลรวมของช่วงเวลาเวลาที่ใช้จำนวนเงินที่มีค่าจำนวนเงินค่าลงจำนวนและจำนวนครั้ง/proc/[pid]/stat คำนวณt = x / interval(ช่วงเวลาไม่เสมอว่า 5 วินาทีเมื่อโหลดสูง) ถ้าฉันทำสิ่งนี้ฉันจะได้รับค่าที่สมเหตุสมผล ตัวอย่างเช่น: ผู้ใช้ในระบบนี้หมุนเป็นไพ ธ อน ( while True: pass) และระบบแสดงรอบเวลา CPU ประมาณ 750 มิลลิวินาทีต่อวินาที เมื่อระบบหยุดทำงานสักครู่ระบบจะรายงาน 1600 มิลลิวินาทีเป็นเวลา 1 วินาที ซึ่งดูเหมือนจะเกี่ยวกับสิ่งที่ถูกต้อง แต่ฉัน undestand …