Làm thế nào ưu tiên IO đĩa có liên quan với ưu tiên quá trình?


11

Đôi khi tôi đang chạy phần mềm làm quá tải đĩa IO. Tôi không cần phản hồi nhanh từ phần mềm đó, tôi cần phản hồi nhanh từ các ứng dụng khác, vì vậy tôi có thể đặt mức độ ưu tiên thấp cho quy trình đó. Tôi muốn hỏi làm thế nào ưu tiên quá trình ảnh hưởng đến ưu tiên IO đĩa cho một quá trình.

Tôi đã thử một thử nghiệm nhỏ: Tôi đặt mức độ ưu tiên thấp (trong System Monitor theo Gnome) cho một quy trình và kiểm tra mức độ ưu tiên IO với ionice.

Kết quả:

IO priority = 0 for normal process priority   
IO priority = 4 for low process priority

Nhưng điều này sẽ luôn luôn làm việc như thế này? Là ưu tiên IO luôn luôn giảm khi tôi giảm ưu tiên quá trình?

Câu trả lời:


14

Theo Linux, theo mặc định, mức ưu tiên IO của một quá trình được lấy từ mức ưu tiên CPU của nó theo công thức

io_priority = (cpu_nice + 20) / 5

Mức độ ưu tiên IO nằm trong khoảng từ 0 đến 7 với 0 là mức ưu tiên cao nhất. Độ đẹp của CPU dao động từ -20 đến 19 với -20 là ưu tiên cao nhất.

Bạn có thể sử dụng ionicelệnh để thay đổi mức ưu tiên IO của quy trình. Nếu bạn muốn quá trình đó chỉ chạy khi hệ thống không bận, hãy làm cho nó chạy dưới lớp nhàn rỗi của Thay vì chứ không phải là lớp nỗ lực tốt nhất mặc định của Wap:

ionice -c 3 -p $PID
ionice -c 3 mycommand --someoption

Ngay cả với mức ưu tiên thấp nhất, một quy trình sử dụng nhiều đĩa có xu hướng làm chậm hệ thống, nếu không có gì khác vì nó làm ô nhiễm bộ đệm.

Xem ionicetrang người đàn ông để biết thêm thông tin.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.