Hướng dẫn sử dụng lệnh chrt của Linux dành cho người mới bắt đầu (5 ví dụ)

theanh

Administrator
Nhân viên
Các tiến trình tạo thành cốt lõi của một hệ thống Linux đang chạy. Khi một chương trình chuyển đổi thành một tiến trình (tức là khi nó được thực thi), rất nhiều thuộc tính được thiết lập. Đôi khi, bạn có thể muốn thay đổi các thuộc tính này khi chạy. Có một công cụ dòng lệnh chrt cho phép bạn thực hiện việc này.

Trong hướng dẫn này, chúng ta sẽ thảo luận về tiện ích này với một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, chúng ta cần lưu ý rằng tất cả các ví dụ trong bài viết này đều đã được thử nghiệm trên máy Ubuntu 18.04 LTS.

Lệnh chrt của Linux​

Như đã đề cập trong phần giới thiệu ở trên, lệnh chrt cho phép bạn thao tác các thuộc tính thời gian thực của một quy trình. Sau đây là cú pháp của nó:
Mã:
chrt [options] -p [prio] pid
Và đây là cách trang hướng dẫn của công cụ giải thích về nó:
Mã:
chrt thiết lập hoặc truy xuất các thuộc tính lập lịch thời gian thực của một pid hiện có?
 hoặc chạy lệnh với các thuộc tính đã cho. Cả chính sách (một
 trong số SCHED_OTHER, SCHED_FIFO, SCHED_RR, SCHED_BATCH hoặc SCHED_IDLE) và
 mức độ ưu tiên đều có thể được thiết lập và truy xuất.

 Chính sách SCHED_BATCH được hỗ trợ kể từ Linux 2.6.16. Chính sách SCHED_IDLE
 được hỗ trợ kể từ Linux 2.6.23.

 Cờ SCHED_RESET_ON_FORK cho các chính sách SCHED_RR và SCHED_FIFO
 được hỗ trợ kể từ Linux 2.6.31.
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách lệnh chrt hoạt động.

Câu hỏi 1. Làm thế nào để sử dụng lệnh chrt?​

Giả sử bạn muốn thao tác chính sách lập lịch hoặc mức độ ưu tiên của quy trình gedit. Vì vậy, điều đầu tiên bạn cần làm là lấy id quy trình cho quy trình này, bạn có thể thực hiện việc này bằng lệnh pidof.
Mã:
pidof gedit
Ví dụ, trên hệ thống của tôi, lệnh trên đã đưa ra pid '6063' làm đầu ra. Bây giờ, để lấy chính sách lập lịch hiện tại và mức độ ưu tiên cho quy trình gedit, hãy sử dụng chrt theo cách sau:
Mã:
chrt -p 6063
Và đây là đầu ra mà lệnh này tạo ra trên hệ thống của tôi:
Mã:
Chính sách lập lịch hiện tại của pid 6063: SCHED_OTHER
Mức độ ưu tiên lập lịch hiện tại của pid 6063: 0

Câu 2. Làm thế nào để chrt hiển thị mức ưu tiên hợp lệ tối thiểu/tối đa?​

Bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -m.
Mã:
chrt -m
Ví dụ, trên hệ thống của chúng tôi, lệnh trên tạo ra kết quả đầu ra sau:
Mã:
SCHED_OTHER min/max priority : 0/0
SCHED_FIFO min/max priority : 1/99
SCHED_RR min/max priority : 1/99
SCHED_BATCH min/max priority : 0/0
SCHED_IDLE min/max priority : 0/0
Bạn sẽ phải tham khảo các giá trị này để thiết lập mức ưu tiên khi thiết lập chính sách lập lịch.

Câu 3. Làm thế nào để thiết lập chính sách lập lịch thành SCHED_BATCH?​

Bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -b.

Ví dụ:
Mã:
chrt -b -p 0 6063
Bây giờ, nếu bạn kiểm tra lại chính sách lập lịch cho gedit bằng lệnh sau:
Mã:
chrt -p 6063
Bạn sẽ nhận được kết quả tương tự như sau, cho biết thay đổi bạn đã thực hiện đã được áp dụng:
Mã:
Chính sách lập lịch hiện tại của pid 6063: SCHED_BATCH
Mức độ ưu tiên lập lịch hiện tại của pid 6063: 0

Câu 4. Làm thế nào để thiết lập chính sách lập lịch thành SCHED_FIFO?​

Bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -f.
Mã:
chrt -f -p 20 6063
Như đã thực hiện trong phần Hỏi & Đáp trước, bạn có thể xác minh chéo các thay đổi bằng lệnh chrt -p. Xin lưu ý rằng bạn có thể cần quyền root để sử dụng tùy chọn dòng lệnh -f.

Câu hỏi 5. Làm thế nào để thiết lập chính sách lập lịch thành SCHED_OTHER?​

Bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -o.
Mã:
chrt -o -p 0 6063
Để xác minh, hãy sử dụng lệnh chrt -p.
Mã:
chrt -p 6063
Sau đây là kết quả trong trường hợp của tôi:
Mã:
pid 6063's current scheduling policy: SCHED_OTHER
pid 6063's current scheduling priority: 0

Kết luận​

Đồng ý, lệnh chrt không phải là loại công cụ mà bạn có thể sử dụng hàng ngày. Thậm chí, bạn có thể không cần đến nó cho đến khi bạn tham gia quản lý hệ thống hoặc làm một số công việc liên quan đến lập lịch hạt nhân. Tuy nhiên, ít nhất bạn cũng nên biết rằng có một công cụ như vậy. Để biết thêm thông tin về chrt, hãy truy cập trang hướng dẫn của nó.
 
Back
Bên trên