Hướng dẫn giới hạn CPU cho các tiến trình Linux với CPULimit

Hướng dẫn giới hạn CPU cho các tiến trình Linux với CPULimit

20/04/2021

Đôi khi máy chủ Linux chúng ta sử dụng một vài tiến trình, nhưng ngốn khá nhiều CPU (>=80%) dẫn đến hệ thống bị quá tải về CPU. CPULimit là một tiện ích Linux được cung cấp để hạn chế việc sử dụng tài nguyên của ứng dụng. Nó rất hữu ích khi bạn muốn ngăn một ứng dụng làm chậm các ứng dụng khác, hoặc ngăn không cho ứng dụng sử dụng toàn bộ CPU trong một khoảng thời gian dài.

CPULimit không được thiết kế để hoạt động với các ứng dụng, vì CPULimit có thể bị kill khi các ứng dụng được bật/tắt nhanh chóng để giới hạn chương trình ở một số chu kỳ mong muốn. Một số ứng dụng có thể bị giới hạn bao gồm PHP, JavaNginx.

CPU limit

1. Cài đặt CPULimit

  • CPULimit có sẵn để cài đặt từ kho phần mềm mặc định của Debian/Ubuntu, để cài đặt bạn chạy lệnh sau:
$ sudo apt install cpulimit
  • Với RHEL/CentOS and Fedora bạn có thể cài đặt với lệnh sau :
# yum install epel-release
# yum install cpulimit

...
Complete!
  • Xem các tuỳ chọn của cpulimit như sau:

2. Giới hạn tiến trình với CPULimit

  • Trước hết ta cần kiểm tra hoạt động của một tiến trình và % CPU của tiến trình đó, ta chạy lệnh dd và theo dõi tiến trình này qua lệnh “top -c”
# dd if=/dev/zero of=/dev/null &
  • Ta có thể thấy tiến trình có PID 6085 đang chạy với ~100% cpu (1 core), bây giờ chúng ta sẽ giới hạn CPU với tiến trình này.
  • Chạy lệnh screencpulimit để thực thi được việc giới hạn cpu tiến trình. Vì chương trình CPULimit sẽ bị tắt nếu chúng ta thao tác câu lệnh khác trên cùng một cửa sổ terminal hoặc nhấn “Ctr C”.
# screen -S vietnix
# cpulimit --pid 6085 --limit 25
giới hạn 25%
tiến trình đã được giới hạn thành công
  • Để dừng limit ta chỉ cần xoá cửa sổ screen đó bằng lệnh sau:
# screen -S vietnix -X quit

[1]+  Stopped                 dd if=/dev/zero of=/dev/null

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

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments