Giới thiệu
Trong lab này, bạn sẽ học cách sử dụng lệnh chrt
của Linux để quản lý các thuộc tính lập lịch thời gian thực của các tiến trình đang chạy. Lệnh chrt
cho phép bạn điều chỉnh độ ưu tiên thời gian thực của một tiến trình và quản lý chính sách lập lịch của nó, điều này có thể hữu ích cho việc tối ưu hóa hiệu suất của các ứng dụng quan trọng về thời gian hoặc đảm bảo rằng các tiến trình quan trọng được lên lịch với độ ưu tiên cao hơn.
Bạn sẽ bắt đầu bằng cách hiểu mục đích của lệnh chrt
và cách kiểm tra độ ưu tiên thời gian thực hiện tại của một tiến trình. Sau đó, bạn sẽ học cách thay đổi độ ưu tiên thời gian thực và chính sách lập lịch của một tiến trình bằng lệnh chrt
. Kiến thức này có thể giúp bạn tối ưu hóa hiệu suất hệ thống và đảm bảo rằng các tác vụ quan trọng được thực hiện kịp thời.
Tìm hiểu Mục đích của Lệnh chrt
Trong bước này, bạn sẽ tìm hiểu về mục đích của lệnh chrt
trong Linux. Lệnh chrt
được sử dụng để đặt và truy xuất các thuộc tính lập lịch thời gian thực của một tiến trình đang chạy.
Lệnh chrt
cho phép bạn:
- Điều chỉnh độ ưu tiên thời gian thực của một tiến trình
- Quản lý chính sách lập lịch của một tiến trình
Điều này có thể hữu ích cho việc tối ưu hóa hiệu suất của các ứng dụng quan trọng về thời gian hoặc đảm bảo rằng các tiến trình quan trọng được lên lịch với độ ưu tiên cao hơn.
Hãy bắt đầu bằng cách kiểm tra độ ưu tiên thời gian thực hiện tại của một tiến trình. Chạy lệnh sau để lấy độ ưu tiên thời gian thực của tiến trình shell hiện tại:
chrt -p $$
Ví dụ đầu ra:
pid 1234's current scheduling policy: SCHED_OTHER
pid 1234's current scheduling priority: 0
Đầu ra cho thấy tiến trình shell hiện tại đang sử dụng chính sách lập lịch SCHED_OTHER
với độ ưu tiên là 0. Đây là chính sách lập lịch mặc định cho hầu hết các tiến trình thông thường.
Bây giờ, hãy thử thay đổi độ ưu tiên thời gian thực của một tiến trình. Chúng ta sẽ sử dụng lệnh sleep
để tạo một tiến trình mới và sau đó sử dụng chrt
để điều chỉnh độ ưu tiên thời gian thực của nó.
sudo chrt -f -p 10 $$
Lệnh này đặt chính sách lập lịch thời gian thực FIFO (First-In-First-Out) với độ ưu tiên là 10 cho tiến trình shell hiện tại.
Ví dụ đầu ra:
pid 1234's current scheduling policy: SCHED_FIFO
pid 1234's current scheduling priority: 10
Lệnh chrt
cho phép bạn quản lý các chính sách lập lịch và độ ưu tiên của các tiến trình, điều này có thể hữu ích cho việc tối ưu hóa hiệu suất hệ thống và đảm bảo rằng các tác vụ quan trọng được thực hiện kịp thời.
Điều chỉnh Độ ưu tiên Thời gian Thực của Tiến trình
Trong bước này, bạn sẽ học cách điều chỉnh độ ưu tiên thời gian thực của một tiến trình bằng lệnh chrt
.
Các chính sách lập lịch thời gian thực trong Linux được thiết kế để cung cấp hành vi xác định và độ trễ thấp cho các ứng dụng quan trọng về thời gian. Lệnh chrt
cho phép bạn đặt chính sách lập lịch và độ ưu tiên của một tiến trình.
Hãy bắt đầu bằng cách tạo một tiến trình mới bằng lệnh sleep
và sau đó điều chỉnh độ ưu tiên thời gian thực của nó.
## Start a new process
sudo chrt -f -p 10 sleep 60 &
Lệnh này khởi động một tiến trình sleep
mới với chính sách lập lịch thời gian thực FIFO (First-In-First-Out) và độ ưu tiên là 10.
Bạn có thể xác minh chính sách lập lịch và độ ưu tiên của tiến trình mới bằng lệnh chrt
:
chrt -p $(pgrep sleep)
Ví dụ đầu ra:
pid 12345's current scheduling policy: SCHED_FIFO
pid 12345's current scheduling priority: 10
Bây giờ, hãy thử thay đổi độ ưu tiên thời gian thực của tiến trình sleep
thành một giá trị cao hơn là 20:
sudo chrt -f -p 20 $(pgrep sleep)
Bạn có thể xác minh độ ưu tiên đã cập nhật bằng cách chạy lại lệnh chrt -p
:
chrt -p $(pgrep sleep)
Ví dụ đầu ra:
pid 12345's current scheduling policy: SCHED_FIFO
pid 12345's current scheduling priority: 20
Lệnh chrt
cho phép bạn điều chỉnh động độ ưu tiên thời gian thực của một tiến trình đang chạy, điều này có thể hữu ích cho việc tối ưu hóa hiệu suất của các ứng dụng quan trọng về thời gian hoặc đảm bảo rằng các tiến trình quan trọng được lên lịch với độ ưu tiên cao hơn.
Quản lý Chính sách Lập lịch với Lệnh chrt
Trong bước cuối cùng này, bạn sẽ học cách quản lý các chính sách lập lịch khác nhau bằng lệnh chrt
.
Linux hỗ trợ một số chính sách lập lịch, mỗi chính sách có các đặc điểm và trường hợp sử dụng riêng. Các chính sách lập lịch chính là:
SCHED_OTHER
: Chính sách lập lịch mặc định cho các tiến trình thông thường. Nó sử dụng phương pháp chia sẻ thời gian để phân phối thời gian CPU giữa các tiến trình.SCHED_FIFO
: Một chính sách lập lịch thời gian thực, First-In-First-Out. Các tiến trình có chính sách này chạy cho đến khi chúng tự nguyện nhường CPU hoặc bị ngắt bởi một tiến trình có độ ưu tiên cao hơn.SCHED_RR
: Một chính sách lập lịch thời gian thực, Round-Robin. Tương tự nhưSCHED_FIFO
, nhưng các tiến trình được gán một lát thời gian và bị ngắt khi lát thời gian hết hạn.SCHED_BATCH
: Một chính sách được thiết kế cho các tiến trình kiểu batch, bị ràng buộc bởi CPU. Nó cung cấp cho các tiến trình này độ ưu tiên thấp hơn một chút so vớiSCHED_OTHER
.SCHED_IDLE
: Một chính sách được thiết kế cho các tiến trình có độ ưu tiên thấp, thời gian nhàn rỗi.
Hãy thử đặt các chính sách lập lịch khác nhau cho một tiến trình bằng lệnh chrt
:
## Set the SCHED_FIFO policy with priority 10
sudo chrt -f -p 10 sleep 60 &
## Set the SCHED_RR policy with priority 15
sudo chrt -r -p 15 sleep 60 &
## Set the SCHED_BATCH policy
sudo chrt -b sleep 60 &
## Set the SCHED_IDLE policy
sudo chrt -i sleep 60 &
Bạn có thể sử dụng lệnh chrt -l
để liệt kê tất cả các chính sách lập lịch có sẵn:
chrt -l
Ví dụ đầu ra:
Scheduling policies available:
SCHED_OTHER
SCHED_FIFO
SCHED_RR
SCHED_BATCH
SCHED_IDLE
Lệnh chrt
cung cấp một cách linh hoạt để quản lý các chính sách lập lịch và độ ưu tiên của các tiến trình, cho phép bạn tối ưu hóa hiệu suất hệ thống và đảm bảo rằng các tác vụ quan trọng được thực hiện kịp thời.
Tóm tắt
Trong lab này, bạn đã học về mục đích của lệnh chrt
trong Linux, được sử dụng để đặt và truy xuất các thuộc tính lập lịch thời gian thực của một tiến trình đang chạy. Bạn bắt đầu bằng cách kiểm tra độ ưu tiên thời gian thực hiện tại của một tiến trình, và sau đó học cách điều chỉnh độ ưu tiên thời gian thực của một tiến trình bằng lệnh chrt
. Điều này có thể hữu ích cho việc tối ưu hóa hiệu suất của các ứng dụng quan trọng về thời gian hoặc đảm bảo rằng các tiến trình quan trọng được lên lịch với độ ưu tiên cao hơn.