Ionice เป็นคำสั่ง linux มาตรฐานที่อนุญาตให้ตั้งค่าระดับความสำคัญ io สำหรับกระบวนการ:
http://linux.die.net/man/1/ionice
เด็ก ๆ ทำกระบวนการสืบทอดลำดับความสำคัญของไอริสจากพ่อแม่หรือไม่? คุณจะตรวจสอบลำดับความสำคัญของกระบวนการที่กำลังทำงานอยู่ได้อย่างไร
Ionice เป็นคำสั่ง linux มาตรฐานที่อนุญาตให้ตั้งค่าระดับความสำคัญ io สำหรับกระบวนการ:
http://linux.die.net/man/1/ionice
เด็ก ๆ ทำกระบวนการสืบทอดลำดับความสำคัญของไอริสจากพ่อแม่หรือไม่? คุณจะตรวจสอบลำดับความสำคัญของกระบวนการที่กำลังทำงานอยู่ได้อย่างไร
คำตอบ:
ใช่. ฉันทดสอบแล้ว ลำดับความสำคัญของ IO ได้รับการถ่ายทอดเช่นเดียวกับความดีของ CPU นี่อาจเป็นสิ่งที่คุณต้องการ หากไม่เป็นเช่นนั้นคุณสามารถระบุลำดับความสำคัญ IO ของกระบวนการลูกด้วยคำสั่ง ionice
จากหน้าคน ( man ionice):
# ionice -p 89 91
Prints the class and priority of the processes with PID 89 and 91.
กระบวนการใดก็ตามที่ถูกแยกไว้จะสืบทอดคลาส io และลำดับความสำคัญของพาเรนต์อย่างไรก็ตามความจริงที่สำคัญที่ต้องคำนึงถึงคือถ้าคุณเปลี่ยนคลาส io และ / หรือลำดับความสำคัญของกระบวนการที่กำลังรันอยู่จะไม่เปลี่ยนคลาส / ลำดับความสำคัญของ กระบวนการลูกใด ๆ ในปัจจุบันของกระบวนการนั้น ที่กล่าวว่าเมื่อคุณปรับคลาสและ / หรือลำดับความสำคัญของกระบวนการทำงานกระบวนการลูกใด ๆ ที่ถูกแยกออกไปข้างหน้าจะสืบทอดคลาส io และลำดับความสำคัญใหม่
ใช่และนี่คือวิธีที่ฉันทดสอบ
สร้างสองไฟล์ foo.sh
# ==> foo.sh <==
echo $$
ionice
และ nicechange.sh
# ==> nicechange.sh <==
echo $$
echo -n Before change:
ionice
echo Change to best-effort
ionice -c best-effort -p $$
echo After changed
ionice
echo Subprocess
x=$(bash foo.sh)
echo $x
จากนั้นเรียกใช้:
$ bash nicechange.sh
2549
Before change:idle
Change to best-effort
After changed
best-effort: prio 4
Subprocess
2555 best-effort: prio 4