คำสั่งทั้งหมดที่คุณต้องการคือ:
chrt -b 0 nice -n 19 ionice -c 2 -n 7 [command]
chrt
คำสั่งที่จุดเริ่มต้นที่จะเปลี่ยนสิ่งที่ชั้นการตั้งเวลาชุดซึ่งเทียบเท่ากับการเพิ่ม 0.5 ถึงมูลค่าที่ดี ตัวเลือก -n สำหรับ ionice เป็นลำดับความสำคัญง่าย ๆ สำหรับตัวเลือกเรียลไทม์ ( -c 1
) และ best-พยายาม ( -c 2
) โดยที่ค่าที่ต่ำกว่าจะมีลำดับความสำคัญสูงกว่าเช่นเดียวกับค่าที่ดี (แต่อยู่ในช่วง 0-7) อย่างไรก็ตามคำสั่ง ionice ที่ไม่จำเป็นอย่างเคร่งครัดตั้งแต่ I / O ระดับตั้งเวลาและลำดับความสำคัญโดยเริ่มต้นมาจากพารามิเตอร์การตั้งเวลาของ CPU และหมายถึงnice -n 19
ionice -c 2 -n 7
อย่างไรก็ตามคุณสามารถได้รับการใช้ทรัพยากรน้อยที่สุดโดยการตั้งค่าคลาส CPU และ I / O ให้ว่าง ในทั้งสองกรณีตัวจับเวลา 'ไม่ได้ใช้งาน' ไม่ใช่ตัวกำหนดเวลาที่ไม่ได้ใช้งานจริงและคุณจะยังสามารถใช้ทรัพยากรได้ แต่ทุกอย่างจะมีความสำคัญสูงกว่า
สำหรับคลาสการกำหนดเวลา CPU สิ่งนี้จะใช้chrt
คำสั่งแม้ว่าจะไม่จำเป็นต้องมีnice
(ลำดับความสำคัญต้องถูกตั้งค่าเป็น0
ในคลาสการกำหนดตารางเวลาว่าง) และมีลักษณะดังนี้:
chrt -i 0 {command or PID}
nice
คำสั่งบนลินุกซ์กระจกรุ่น SVR4 ซึ่งหมายความว่ามันไม่สามารถเปลี่ยนระดับการตั้งเวลาเพียงค่าที่ดี (ซึ่งยังทำงานแตกต่างกันบน Linux กว่าคลาสสิก UNIX, แต่ที่ OT บิต) ในฐานะที่เป็นต้นฉบับการเรียนการตั้งเวลาทางเลือกที่เป็นเรียลไทม์ POSIX.1E SCHED_RR
และคำสั่งในการเรียนการตั้งเวลาชุดจบลงด้วยการถูกเรียกว่าSCHED_FIFO
ตัวเลือกระบุจะใช้ระดับการตั้งเวลาchrt
-i
SCHED_IDLE
สำหรับการเรียนการจัดตาราง I / O ionice
ที่คุณใช้ คำสั่งที่แน่นอนมีลักษณะเช่นนี้:
ionice -c 3 {command or PID}
-c
ตัวเลือกที่ระบุว่าระดับการตั้งเวลาในการใช้งานและ 3 เป็นจำนวนสำหรับการเรียนไม่ได้ใช้งาน โปรดทราบว่าการใช้ตัวกำหนดตารางเวลาบล็อก I / O นั้นอาจไม่ส่งผลกระทบอะไรเลย โดยเฉพาะอย่างยิ่งตัวnoop
กำหนดตารางเวลา I / O ไม่สนับสนุนลำดับความสำคัญหรือคลาสการกำหนดเวลาเลยและฉันค่อนข้างมั่นใจว่าตัวdeadline
จัดตารางเวลา (ทั้งที่เป็นแบบดั้งเดิมและแบบ blk-mq) ไม่เหมือนกัน
หากคุณต้องการทำสิ่งนี้โดยทางโปรแกรมไม่ว่าจะเป็นโปรแกรมของคุณเองหรือเพื่อปรับเปลี่ยนกระบวนการอื่น ๆ ให้ตรวจสอบ man pages สำหรับsched_setscheduler
และการioprio_set
เรียกของระบบ (แม้ว่าทั้งคู่จะคุ้มค่ากับการอ่าน