คำสั่งทั้งหมดที่คุณต้องการคือ:
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 19ionice -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-iSCHED_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เรียกของระบบ (แม้ว่าทั้งคู่จะคุ้มค่ากับการอ่าน