Có phải trẻ em xử lý các ưu tiên ionice từ cha mẹ của chúng? Làm thế nào để bạn kiểm tra mức độ ưu tiên IO của một quy trình đang chạy?


15

Ionice là một lệnh linux tiêu chuẩn cho phép đặt mức độ ưu tiên io cho một tiến trình:

http://linux.die.net/man/1/ionice

Có phải trẻ em xử lý các ưu tiên ionice từ cha mẹ của chúng? Làm thế nào để bạn kiểm tra mức độ ưu tiên io của một quy trình đang chạy?

Câu trả lời:


12

Đúng. Tôi đã thử nó. Ưu tiên IO được kế thừa giống như tính độc đáo của CPU. Đây có lẽ là những gì bạn muốn. Nếu không, bạn có thể chỉ định rõ ràng mức độ ưu tiên IO của các tiến trình con bằng lệnh ionice.


9

Từ trang người đàn ông ( man ionice):

# ionice -p 89 91
Prints the class and priority of the processes with PID 89 and 91.

+1 cho bạn vì bạn đã trả lời nửa câu hỏi còn lại.
Ryan C. Thompson

7

Bất kỳ quy trình nào được chia đều thừa kế lớp io và mức độ ưu tiên của cha mẹ chúng, tuy nhiên một thực tế quan trọng cần lưu ý là nếu bạn thay đổi lớp io và / hoặc mức độ ưu tiên của quy trình đang chạy thì nó không thay đổi lớp io / mức độ ưu tiên của bất kỳ quá trình con hiện tại của quá trình đó . Điều đó nói rằng, một khi bạn đã điều chỉnh lớp và / hoặc mức độ ưu tiên của một quy trình đang chạy, bất kỳ quy trình con nào được phân nhánh tiến lên sẽ kế thừa lớp io mới và mức độ ưu tiên.


1

Vâng và đây là cách tôi đã thử nghiệm nó

Tạo hai tập tin 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

Sau đó, chạy nó:

$ bash nicechange.sh 
2549
Before change:idle
Change to best-effort
After changed
best-effort: prio 4
Subprocess
2555 best-effort: prio 4
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.