Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn sử dụng lệnh renice để thay đổi mức ưu tiên CPU cho các tiến trình

    Nguyễn Hưng

    Ngày đăng:

    02/04/2026

    Cập nhật lần cuối:

    02/04/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    02/04/2026

    Cập nhật lần cuối:

    02/04/2026

    Mục lục

    Lệnh renice trong Linux dùng để thay đổi giá trị nice của các tiến trình đang chạy, qua đó điều chỉnh mức ưu tiên CPU mà không cần dừng hay khởi động lại chương trình. Dựa trên kinh nghiệm vận hành hệ thống, mình thường dùng renice để giảm ưu tiên cho các tác vụ ít quan trọng và tăng ưu tiên tạm thời cho dịch vụ cần phản hồi nhanh khi server có dấu hiệu quá tải CPU. Trong bài viết này, mình sẽ trình bày cách renice hoạt động, cú pháp theo PID/user/group, các tình huống sử dụng thực tế và một số lỗi thường gặp khi thay đổi ưu tiên tiến trình.

    Những điểm chính

    Trong các hệ thống Linux có nhiều dịch vụ chạy song song, hiểu và sử dụng đúng lệnh renice giúp bạn phân bổ lại tài nguyên CPU linh hoạt hơn thay vì chỉ trông chờ vào việc nâng cấp phần cứng khi server quá tải.

    • Khái niệm: Hiểu rõ lệnh renice là công cụ dùng để thay đổi mức ưu tiên CPU của các tiến trình đang chạy, giúp bạn điều chỉnh tài nguyên hệ thống một cách linh hoạt mà không cần khởi động lại.
    • Mối liên hệ với giá trị nice: Nắm vững cách renice tác động đến giá trị nice, giúp bạn hiểu rõ cơ chế nền tảng để điều chỉnh mức ưu tiên lập lịch CPU của tiến trình.
    • Cú pháp cơ bản: Nắm vững cú pháp và các tùy chọn của lệnh renice, giúp bạn dễ dàng áp dụng thay đổi ưu tiên cho từng tiến trình, người dùng hoặc nhóm một cách chính xác.
    • Các bước sử dụng: Nắm vững quy trình từ việc xác định PID đến thay đổi mức ưu tiên, giúp bạn áp dụng lệnh renice vào các tình huống thực tế để tăng hoặc giảm ưu tiên CPU một cách hiệu quả.
    • Điều chỉnh theo user và group: Tìm hiểu cách áp dụng renice cho toàn bộ tiến trình của một người dùng hoặc một nhóm, giúp bạn quản lý tài nguyên ở quy mô lớn hơn.
    • Phân biệt với lệnh nice: Phân biệt rõ ràng sự khác biệt về thời điểm và đối tượng tác động, giúp bạn lựa chọn đúng công cụ nice cho tiến trình mới, renice cho tiến trình đang chạy.
    • Các lỗi thường gặp và cách khắc phục: Nhận diện được các lỗi phổ biến và các giới hạn về quyền, giúp bạn sử dụng lệnh renice một cách an toàn và tránh các kết quả không mong muốn.
    • Câu hỏi thường gặp: Được giải đáp các thắc mắc phổ biến liên quan đến lệnh renice.

    Lệnh renice là gì?

    Lệnh renice trong Linux là tiện ích dùng để thay đổi giá trị nice của một hoặc nhiều tiến trình đang chạy, qua đó điều chỉnh lại mức ưu tiên lập lịch CPU của các tiến trình này mà không cần dừng rồi khởi động lại. Thông qua renice, quản trị viên hoặc user có đủ quyền có thể tăng hoặc giảm giá trị nice cho tiến trình theo PID, theo nhóm tiến trình hoặc theo user, giúp phân phối lại tài nguyên CPU giữa các tác vụ đang hoạt động sao cho phù hợp với nhu cầu hệ thống tại thời điểm đó.

    Lệnh renice trong Linux là tiện ích dùng để thay đổi giá trị nice của một hoặc nhiều tiến trình đang chạy
    Lệnh renice trong Linux là tiện ích dùng để thay đổi giá trị nice của một hoặc nhiều tiến trình đang chạy

    Mối liên hệ giữa renice, giá trị nice và mức ưu tiên CPU

    Trong Linux, lệnh renice hoạt động trực tiếp trên giá trị nice của các tiến trình đang chạy, từ đó tác động đến thứ tự ưu tiên mà bộ lập lịch CPU sử dụng khi phân chia thời gian xử lý cho từng tiến trình. Về nguyên tắc, mỗi tiến trình có một giá trị nice trong khoảng từ -20 đến 19, giá trị này càng thấp thì mức ưu tiên lập lịch càng cao và renice cho phép cập nhật lại niceness của tiến trình (theo PID, user hoặc group) trong khi tiến trình vẫn đang hoạt động, giúp thay đổi cách CPU phân phối thời gian cho tiến trình đó so với các tiến trình khác mà không cần khởi động lại chương trình.

    Cú pháp lệnh renice trên Linux

    Để điều chỉnh lại độ ưu tiên CPU cho các tiến trình đang chạy, lệnh renice trên Linux cung cấp cú pháp linh hoạt cho từng PID, user hoặc group, kèm theo tuỳ chọn -n khi cần điều chỉnh niceness theo dạng tương đối. Cú pháp cơ bản thường dùng:

    renice [giá_trị_nice] -p PID
    renice [giá_trị_nice] -u username
    renice [giá_trị_nice] -g groupname

    Trong đó:

    • [giá_trị_nice]: Giá trị nice mới muốn đặt cho tiến trình, là một số nguyên nằm trong phạm vi hệ thống cho phép (thông thường từ -20 đến 19), thể hiện mức ưu tiên CPU sau khi renice được áp dụng.
    • -p PID: Tùy chọn dùng khi cần chỉnh sửa niceness dựa trên Process ID, áp dụng trực tiếp cho một hoặc nhiều PID cụ thể đã xác định trước.
    • -u username: Tùy chọn cho phép thay đổi giá trị nice của toàn bộ tiến trình thuộc về một user, giúp điều chỉnh ưu tiên CPU theo tài khoản người dùng thay vì từng PID riêng lẻ.
    • -g groupname: Tùy chọn dùng để cập nhật niceness cho các tiến trình trong một process group hoặc group tương ứng, hỗ trợ thay đổi ưu tiên theo nhóm tiến trình liên quan thay vì cấu hình từng tiến trình một.

    Bước 1: Xác định PID của tiến trình cần điều chỉnh

    Trước tiên, bạn cần tìm PID của tiến trình đang chạy bằng cách lọc danh sách process theo tên lệnh hoặc script, ví dụ:

    ps aux | grep app.py

    Lệnh này hiển thị các dòng chứa app.py cùng thông tin chi tiết, trong đó cột PID cho biết mã tiến trình cần dùng cho thao tác renice ở bước tiếp theo, giúp bạn nhắm đúng tiến trình cần thay đổi mức ưu tiên.

    Bước 2: Thay đổi mức ưu tiên bằng renice theo PID

    Sau khi đã có PID, bạn đặt lại giá trị nice mới cho tiến trình đó bằng cú pháp renice, ví dụ:

    renice 10 -p 1234

    Trong ví dụ này, tiến trình có PID 1234 được chuyển sang niceness 10, nghĩa là sẽ nhận ít thời gian CPU hơn so với các tiến trình có giá trị nice thấp hơn, phù hợp cho các tác vụ nền ít quan trọng.

    Bước 3: Tăng ưu tiên CPU cho tiến trình bằng quyền root

    Khi cần nâng mức ưu tiên một tiến trình quan trọng, bạn có thể gán niceness âm (cao hơn mức mặc định), thao tác này yêu cầu đặc quyền root hoặc sudo, ví dụ:

    sudo renice -5 -p 1234

    Câu lệnh này đặt lại giá trị nice của tiến trình 1234 về -5, giúp tiến trình đó được lập lịch với ưu tiên CPU cao hơn các tiến trình có niceness 0 hoặc dương, qua đó đáp ứng tốt hơn trong bối cảnh hệ thống đang bận.

    Đổi mức nice cho toàn bộ tiến trình thuộc một user

    Trước hết, nếu muốn điều chỉnh niceness cho tất cả tiến trình của một tài khoản, bạn có thể sử dụng cú pháp:

    renice [giá_trị_nice] -u username

    Ví dụ, lệnh renice 10 -u admin hoặc renice 10 -u 1002 sẽ đặt giá trị nice bằng 10 cho toàn bộ tiến trình thuộc user admin hoặc user có UID 1002, giúp giảm mức ưu tiên CPU của toàn bộ tiến trình do tài khoản đó sở hữu mà không cần thao tác trên từng PID.

    Thay đổi ưu tiên cho toàn bộ tiến trình trong một nhóm tiến trình

    Trong trường hợp các tiến trình thuộc cùng một process group (ví dụ nhiều tiến trình con của một dịch vụ), bạn có thể áp dụng renice theo group để điều chỉnh niceness đồng loạt:

    renice [giá_trị_nice] -g groupname

    Hoặc với ID nhóm tiến trình tương ứng. Khi thực thi theo dạng này, mọi tiến trình trong group đó sẽ được cập nhật về cùng giá trị nice mới, giúp kiểm soát ưu tiên CPU ở cấp độ nhóm tiến trình, thay vì thiết lập riêng lẻ cho từng process trong cùng một dịch vụ hoặc pipeline xử lý.

    Phân biệt lệnh nice và renice

    Để sử dụng đúng lệnh nice và renice, bạn cần nắm rõ khác biệt về thời điểm áp dụng, phạm vi tác động và cú pháp, qua đó chọn công cụ phù hợp khi thiết lập hoặc điều chỉnh lại độ ưu tiên CPU cho tiến trình trên Linux. Bảng dưới đây tổng hợp các điểm chính giúp phân biệt hai lệnh này một cách rõ ràng:

    Tiêu chínicerenice
    Thời điểm sử dụngDùng khi khởi chạy tiến trình mới, đặt niceness ngay từ lúc bắt đầu chạy lệnh.Dùng khi tiến trình đã chạy, thay đổi lại niceness của process đang tồn tại trên hệ thống.
    Đối tượng tác độngÁp dụng cho command chuẩn bị được thực thi, ví dụ nice -n 10 ping google.com.Áp dụng cho tiến trình đang chạy theo PID, user hoặc group, ví dụ renice 10 -p 1234.
    Cú pháp chínhnice -n [giá_trị_nice] command – thiết lập niceness cho lệnh sắp chạy.renice [giá_trị_nice] -p PID, renice [giá_trị_nice] -u username, renice [giá_trị_nice] -g groupname – đặt lại niceness cho tiến trình hiện có.
    Cách điều chỉnh giá trịThường đặt trực tiếp giá trị nice khi gọi lệnh (thay vì dựa trên giá trị hiện tại).Có thể đặt giá trị mới hoặc dùng -n để điều chỉnh tăng/giảm so với niceness hiện tại của tiến trình.
    Mục đích sử dụngDùng để khởi chạy tác vụ mới với ưu tiên cao/thấp phù hợp, tránh chiếm CPU ngay từ đầu.Dùng để tái phân bổ ưu tiên cho các tiến trình đang chạy, xử lý tình huống quá tải hoặc cần nâng/giảm ưu tiên động.
    So sánh lệnh nice và renice
    So sánh lệnh nice và renice

    Các lỗi thường gặp khi dùng renice và cách xử lý

    Trong phạm vi lệnh renice, có thể tập trung vào ba nhóm lỗi và giới hạn chính liên quan trực tiếp đến việc thay đổi niceness tiến trình.

    • Lỗi “Permission denied” khi hạ niceness: Khi user thường chạy lệnh dạng renice -5 -p 1234, hệ thống thường báo “Permission denied” hoặc “Operation not permitted” vì chỉ root mới được phép đặt giá trị nice âm hoặc giảm niceness so với hiện tại. Cách xử lý là dùng quyền quản trị, ví dụ sudo renice -5 -p 1234, để hệ thống chấp nhận việc nâng ưu tiên CPU cho tiến trình đó.
    • User thường chỉ được tăng giá trị nice: Với các tiến trình do chính mình sở hữu, user không đặc quyền chỉ có thể tăng niceness (từ 0 lên 5, 10,…) nhằm giảm mức ưu tiên CPU, chứ không thể hạ niceness xuống thấp hơn giá trị hiện tại. Sau khi đã nâng niceness, user đó cũng không thể tự đưa niceness về lại mức thấp hơn nếu không có quyền root, vì điều này tương đương thao tác tăng ưu tiên tiến trình.
    • Giới hạn về phạm vi giá trị nice hợp lệ trong renice: Renice chỉ chấp nhận giá trị nice nằm trong khoảng mà hệ thống quy định (thường là -20 đến 19), nếu truyền giá trị ngoài dải này, lệnh có thể bị từ chối hoặc bị ép về giá trị biên tùy bản phân phối. Do đó, khi dùng renice [giá_trị_nice]… cần bảo đảm giá trị nằm trong phạm vi hợp lệ và nên kiểm tra lại bằng ps -eo pid,ni,cmd hoặc top để xác nhận niceness đã được cập nhật đúng cho tiến trình.
    Các lỗi thường gặp khi dùng renice

    Câu hỏi thường gặp

    Thay đổi niceness bằng renice có ảnh hưởng lâu dài sau khi reboot không?

    Các thay đổi ưu tiên CPU bằng renice chỉ có hiệu lực trong vòng đời của tiến trình hoặc cho đến khi hệ thống khởi động lại. Khi máy được reboot hoặc tiến trình kết thúc rồi chạy lại, giá trị nice sẽ quay về mức được thiết lập tại thời điểm khởi chạy mới (thường là 0 hoặc giá trị do lệnh nice/systemd thiết lập), vì renice không ghi cấu hình vĩnh viễn vào hệ thống.

    Có thể dùng renice để điều chỉnh ưu tiên của mọi thread trong ứng dụng đa luồng hay không?

    Trên nhiều hệ thống Linux, renice áp dụng theo PID/tập PID, trong khi mỗi thread có thể được biểu diễn bằng một TID riêng trong /proc, nên việc renice một PID không đảm bảo toàn bộ thread con đều được cập nhật niceness. Trong trường hợp ứng dụng đa luồng, nếu cần điều chỉnh ưu tiên cho tất cả thread, bạn thường phải renice từng TID tương ứng hoặc dùng cơ chế lập lịch/thread API trong chương trình để đồng bộ cấu hình ưu tiên.

    Khi nào nên ưu tiên dùng renice thay vì kill rồi chạy lại với nice?

    Renice phù hợp khi tiến trình đang xử lý dở dữ liệu, khó hoặc tốn thời gian để khởi động lại, ví dụ job tính toán dài, tiến trình backup, xử lý batch hoặc dịch vụ đang phục vụ người dùng. Trong những trường hợp này, thay đổi niceness động bằng renice giúp điều chỉnh ưu tiên CPU theo tình trạng tải hệ thống hiện tại mà không làm gián đoạn công việc hoặc gây mất dữ liệu như khi buộc dừng rồi chạy lại bằng nice.

    Khi hiểu rõ cách vận hành renice Linux, bạn có thể điều chỉnh ưu tiên CPU cho tiến trình một cách linh hoạt, cân bằng giữa tác vụ quan trọng và tác vụ nền để phù hợp với trạng thái tải thực tế của hệ thống. Kết hợp renice với nice, ps, top và các quy tắc phân quyền hợp lý sẽ giúp quản lý tài nguyên CPU hiệu quả hơn, đặc biệt trong môi trường server nhiều tiến trình hoặc nhiều người dùng.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Cách dùng lệnh systemctl trong Linux để quản lý dịch vụ hệ thống chuyên nghiệp
    Cách dùng lệnh systemctl trong Linux để quản lý dịch vụ hệ thống chuyên nghiệp

    systemctl là công cụ dòng lệnh dùng để quản lý dịch vụ systemd trên Linux, cho phép start/stop/restart, bật/tắt autostart và kiểm tra trạng thái service. Trong bài viết này, mình sẽ giúp bạn hiểu rõ cơ chế hoạt động của systemd, sử dụng thành thạo lệnh systemctl và áp dụng hiệu quả vào các…

    02/04/2026

    Cách dùng lệnh netcat để đọc và ghi dữ liệu qua các kết nối mạng chi tiết
    Cách dùng lệnh netcat để đọc và ghi dữ liệu qua các kết nối mạng chi tiết

    netcat là một tiện ích dòng lệnh được sử dụng để đọc và ghi dữ liệu qua kết nối mạng bằng giao thức TCP hoặc UDP, hoạt động được như cả client lẫn server. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu chi tiết các tính năng, cú pháp lệnh và cách…

    02/04/2026

    Cách dùng lệnh tshark trên Linux để bắt và phân tích gói tin mạng bằng dòng lệnh
    Cách dùng lệnh tshark trên Linux để bắt và phân tích gói tin mạng bằng dòng lệnh

    Lệnh tshark Linux là phiên bản chạy trên dòng lệnh (CLI) của Wireshark, dùng để bắt và phân tích gói tin mạng trực tiếp trong terminal trên Linux và các hệ điều hành khác. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng lệnh tshark trên Linux để bắt và phân tích…

    02/04/2026

    Cách sử dụng lệnh traceroute Linux để theo dõi đường đi của gói tin mạng và xác định sự cố
    Cách sử dụng lệnh traceroute Linux để theo dõi đường đi của gói tin mạng và xác định sự cố

    traceroute là lệnh phân tích mạng quan trọng trên hệ điều hành Linux, được sử dụng để theo dõi lộ trình mà một gói tin IP di chuyển từ máy tính của bạn đến một máy chủ đích trên mạng. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng lệnh traceroute để…

    02/04/2026

    linux

    lenh

    text