เป็นไปได้หรือไม่ที่จะ จำกัด พลังงาน CPU ที่กระบวนการใช้


16

ฉันสงสัยว่ามีวิธีที่จะบอกกระบวนการว่าต้องใช้พลังงานตัวประมวลผลเท่าใด

ปัญหาคือฉันกำลังแปลงวิดีโอด้วยArista (ตัวแปลงวิดีโอ) และฉันก็รู้สึกรำคาญกับแฟน ๆ ที่ทำงานอย่างบ้าคลั่งเมื่อฉันดูที่ task task มันใช้ CPU ถึง 92%

ฉันขอบอกได้ไหมว่ามันอาจใช้เวลาแค่ 20%

ขอบคุณ

คำตอบ:


20

มีเครื่องมือcpulimit (มีอยู่ในdebian repoและควรอยู่ใน distros อื่น ๆ )

มันใช้ง่ายมาก:

cpulimit -p PID -l MAX_CPU_LEVEL

คุณยังสามารถใช้ชื่อกระบวนการหรือเส้นทางแบบเต็มไปยังไบนารี รายละเอียดที่คุณสามารถค้นหาบนหน้าคน


1
ha-ha :) ทำงานได้อย่างสมบูรณ์แบบขอบคุณ +1
เทียบเท่า 8

3
รหัสที่ URL ที่ระบุยังไม่ได้รับการปรับปรุงในบางครั้ง อีกกลุ่มหนึ่งได้หยิบมันขึ้นมาและยังคงพัฒนาlimitcpu.sf.net
James Sneeringer

7

อีกวิธีหนึ่งคือการใช้เคอร์เนลอินเตอร์เฟสใหม่ (ค่อนข้าง) ที่เรียกว่า cgroups (บทความ wikipedia ที่นี่ ) มันช่วยให้การควบคุมที่ละเอียดยิ่งขึ้นของ cpu / memory / io / etc ที่กระบวนการ / ผู้ใช้ / กลุ่มได้รับอนุญาตให้ใช้


0

แม้ว่าสิ่งนี้อาจไม่ตรงกับสิ่งที่คุณต้องการ แต่คุณสามารถใช้reniceโปรแกรมเพื่อเปลี่ยนลำดับความสำคัญของโปรแกรมเพื่อป้องกันไม่ให้แอปพลิเคชันอื่นช้าลงในระบบ renice -n 20 -p [pid]โดยที่ [pid] ถูกแทนที่ด้วย ID กระบวนการของ Arista น่าจะลดการใช้ทรัพยากร 'และจะลดการชะลอตัวของระบบอย่างแน่นอน


1
OP ไม่ได้บ่นเกี่ยวกับกระบวนการทำให้แอปพลิเคชั่นอื่นช้าลง แต่เกี่ยวกับแฟน ๆ ที่ทำงานอย่างบ้าคลั่งreniceไม่สามารถทำอะไรได้ในภายหลัง อย่างดีที่สุดมันจะชะลอตัวแปลงวิดีโอ แต่กระบวนการแข่งขัน (ถ้ามี) จะรักษาโหลด CPU เหมือนก่อน
jlliagre
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.