Bạn có thể renice một quá trình chạy để cho nó nhiều hơn hoặc ít ưu tiên (cái gọi là "nice value"). Lưu ý rằng thang ưu tiên UNIX có phần phản trực giác: các giá trị âm có nghĩa là một quy trình được ưa chuộng hơn các quy trình đồng thời, nghĩa là nó có mức độ ưu tiên "nhiều hơn".
Do đó, bạn có thể cố gắng "làm chậm" quá trình của mình khi đưa ra thông qua:
# lower priority of a process
renice +1 "PID"
Mỗi khi bạn chạy cái này, quá trình "giá trị tốt đẹp" được tăng lên 1; bạn có thể sử dụng các giá trị số nguyên khác với +1
khóa học.
Lệnh Nice cho phép bạn bắt đầu một quy trình với điều chỉnh giá trị đẹp +10 (thay đổi tùy chọn này bằng tùy chọn -n
). Ví dụ:
# start a CPU-intensive task with low priority
nice ./cpu-hog
Tuy nhiên, "giá trị tốt" chỉ ảnh hưởng đến mức độ mà bộ lập lịch ưu tiên chạy một quy trình cụ thể so với các hệ thống khác trong hệ thống: nếu máy tính của bạn về cơ bản không hoạt động, việc nâng "giá trị đẹp" của một quy trình sẽ không ngăn quá trình đó chiếm 100% CPU. Tôi trích dẫn từ trang web getp Warriority (2) : (Nhấn mạnh thêm bởi tôi.)
Mức độ mà giá trị tương đối tốt của chúng ảnh hưởng đến việc lập lịch trình cho các quy trình khác nhau trên các hệ thống Unix và trên Linux, trên các phiên bản kernel. Bắt đầu với kernel 2.6,23, Linux đã áp dụng một thuật toán gây ra sự khác biệt tương đối trong các giá trị đẹp để có hiệu ứng mạnh hơn nhiều. Điều này khiến các giá trị đẹp rất thấp (+19) thực sự cung cấp ít CPU cho một tiến trình bất cứ khi nào có bất kỳ
tải ưu tiên cao hơn nào khác trên hệ thống._
Lý do cho điều này nằm trong cách các tiến trình được chạy trên kernel giống UNIX: mỗi khi kernel quyết định chạy tiến trình, quá trình đó có toàn quyền kiểm soát lõi CPU trong một khoảng thời gian nhất định (cố định và ngắn). "Giá trị đẹp" có thể ảnh hưởng đến tần suất bộ lập lịch kernel sẵn sàng cung cấp khe thời gian cho một quy trình, nhưng bạn không thể thay đổi thực tế rằng, một khi được lên lịch, một quy trình sẽ không bị xáo trộn trong một khoảng thời gian cố định.
Do đó, việc làm chậm CPU của bạn, không có cách nào để làm cho quá trình chạy chậm hơn nếu không có các quy trình khác trong hệ thống có thể tranh giành quyền truy cập CPU.