close

Hướng dẫn giới hạn CPU cho các tiến trình Linux trên Debian/Ubuntu với CPUTool

Tác giả: Nguyen Văn Phong Ngày cập nhật: 03/03/2020 Chuyên mục:
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Hiện tại thì chương trình này chỉ có trên Debian/Ubuntu  bạn có thể cài đặt bằng lệnh sau :

sudo apt install cputool

Giới hạn process với CPULimit

Đầu tiên chúng ta tìm hiểu về cách thức hoạt động của cpulimit, trước tiên chúng ta hãy thử chạy một lệnh dd ổ cứng .

dd if=/dev/zero of=/dev/null &

Bạn có thể theo dõi tiến trình đang hoạt động với lệnh : top

Monitor dd Command CPU Usage

Ở đây tôi thấy tiến trình này luôn chạy với 100% cpu (1 core), giờ tôi thử giới hạn với CPUtool.

Bạn sử dụng tuỳ chọn –cpu-limit hoặc là -c để giới hạn phần trăm sử dụng cpu của process, -p để chỉ định tiến trình nào cần giới hạn.

Chẳng hạn tôi giới hạn tiến trình trên với PID là 8275 với 50% (1 core).

cputool --cpu-limit 50 -p 8275

Sau khi chạy bạn có thể check lại tiến trình đang hoạt động với lệnh top

Limit Process CPU to 50% Usage

Giả sử tôi muốn set lại  20%:

 cputool --cpu-limit 20 -p 8275

Limit Process CPU Usage to 20%

Lưu ý: Khi chạy chương trình này, sau khi nhập lệnh bạn không thao tác trên bàn phím để giữ cho chương trình chạy, để thoát ra bạn có thể nhấn ctrl+X.

Bạn cũng có thể tìm và group chương trình bằng cách chỉ định 1 PID duy nhất. Chẳng hạn bạn muốn tìm các tiến trình chạy bởi apache bạn có thể sử dụng:

pidof apache2

Kết quả.

# pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Bạn có thể dùng lệnh sau để giới hạn cho tất cả các tiến trình apache

cputool --cpu-limit 20 -P 1780

Bạn lưu ý, bạn dùng tuỳ chọn -P (Chữ P viết hoa), không giống như ví dụ đầu tiên là p thường.

Bạn có thể xem thêm thông tin với:

man cputool

Chúc các bạn thành công.

Bài viết liên quan

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn,  Phường Bến Nghé, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886