Cách thay đổi mức độ ưu tiên của quy trình trong Linux với nice và renice | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Cách thay đổi mức độ ưu tiên của quy trình trong Linux với nice và renice

Chia sẻ kiến thức 05/03/2022

Bạn muốn thay đổi mức độ ưu tiên của một số quy trình trên Linux? Bạn có thể làm điều đó một cách dễ dàng bằng cách sử dụng lệnh nice and renice.

Cách thay đổi mức độ ưu tiên của quy trình trong Linux với nice và renice

Linux cho phép bạn chạy nhiều quy trình trên một máy. Tuy nhiên đôi khi, một quy trình nặng có thể làm chậm hệ thống của bạn. Sẽ thật tuyệt nếu có một cách nào đó bạn có thể để nó “xếp hàng sau” trong khi bạn tiếp tục với các công việc khác? Bạn có thể làm điều này với tiện ích nice. 

Tiện ích nice là gì? 

Nice là một tiện ích được tích hợp trong hệ thống Linux và Unix giúp làm giảm mức độ CPU ưu tiên một tiến trình. Tiện ích này là một ‘hiện vật’ còn sót lại từ thời Unix chạy trên máy tính mini nhiều người dùng và máy tính lớn (mainframe), nhưng ngày nay nó vẫn hữu ích khi chạy trên desktop một người dùng.

Bạn có thể đang chơi một trò chơi và gặp hiện tượng giật lag do một số quá trình chuyên sâu mà bạn biết là sẽ mất nhiều thời gian để hoàn thành, chẳng hạn như ứng dụng torrent. Chỉ cần để nó chạy trong nền (background) và tiếp tục chơi.

Nice là một chương trình độc lập hoặc được tích hợp sẵn trong shell. Để biết được hệ thống của bạn thuộc loại nào, hãy nhập:

which nice

Trên Ubuntu, phiên bản có cài đặt nice là phiên bản GNU.

Nice sử dụng khái niệm “nice number” (số đẹp), là mức độ ưu tiên của một quá trình. Trên phiên bản GNU, nó nằm trong khoảng từ 19 đến -20. Các số âm dành nhiều ưu tiên hơn cho quá trình, trong khi các số dương thì ít hơn. Bạn có thể xem các con sô này ở cột NI trong các tiện ích như top hoặc htop.

Bạn muốn thay đổi mức độ ưu tiên của một số quy trình trên Linux? Bạn có thể làm điều đó một cách dễ dàng bằng cách sử dụng lệnh nice and renice.

Để chạy một quy trình có mức độ ưu tiên thấp hơn, hãy sử dụng lệnh sau:

nice processname

Thay thế processnameh bằng tên tiến trình bạn muốn chạy. Theo mặc định, nice sẽ gán số đẹp là 10. Mọi quy trình được khởi động bình thường sẽ mặc định là 0.

Nếu bạn muốn một số cụ thể, trong trường hợp này, ưu tiên thấp nhất có thể, hãy sử dụng tùy chọn -n với số đẹp bạn muốn:

nice -n 19 processname

Thay đổi mức độ ưu tiên của quy trình với renice

Nếu bạn muốn thay đổi mức độ ưu tiên của các tiến trình đang chạy thì sao? Bạn cũng có thể làm điều đó với một tiện ích khác, renice.

Bạn sẽ cần PID, hoặc ID quy trình (Process ID), của quy trình mà bạn muốn thay đổi. Bạn có thể tìm thấy điều đó bằng cách sử dụng lệnh ps , top hoặc htop. Khi bạn đã tìm thấy, bạn chỉ cần đưa nó vào lệnh renice.

Để đặt một số đẹp mới cho PID của bạn, hãy nhập:

renice priority PID

trong đó priority là số đẹp bạn muốn sử dụng.

Cờ (flag) -n  tăng hoặc giảm mức độ ưu tiên của quy trình theo mức mà bạn nêu trong lệnh, vì vậy nếu bạn có một quy trình ở mức 10 và bạn muốn thay đổi nó thành 8, hãy nhập:

sudo renice -n -2 PID

Chỉ superuser (siêu người dùng) mới có thể sửa lại các quy trình thuộc về người dùng khác hoặc tăng mức độ ưu tiên của một quy trình. Bạn có thể sử dụng nút chuyển -u theo sau là username(tên người dùng) để điều chỉnh mức độ ưu tiên cho bất kỳ người dùng nào:

renice priority -u username

Kết luận

Với nice and renice, bạn có thể thay đổi mức độ ưu tiên của bất kỳ quy trình nào trong Linux. Điều này chắc chắn sẽ giúp ích cho bạn trong trường hợp một quá trình nặng đang ngốn một lượng lớn tài nguyên hệ thống của bạn. 

Dịch từ: https://www.makeuseof.com/change-processs-priority-linux-nice-renice/

Vân Nguyễn

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!