Trong môi trường hệ thống máy tính, việc quản lý tài nguyên, đặc biệt là CPU, đóng vai trò vô cùng quan trọng. CPU là bộ não của máy tính, chịu trách nhiệm xử lý các tác vụ. Tuy nhiên, không phải lúc nào nhu cầu sử dụng CPU cũng được phân bổ hợp lý, dẫn đến tình trạng một số tiến trình chiếm dụng quá nhiều tài nguyên, gây ảnh hưởng đến hiệu suất chung của hệ thống và các ứng dụng khác.
Đây là lúc CPULimit xuất hiện như một giải pháp hữu hiệu để giải quyết vấn đề này.
Nhờ CPULimit, bạn có thể:
CPULimit là một công cụ dòng lệnh đơn giản nhưng mạnh mẽ được sử dụng để quản lý và giới hạn việc sử dụng CPU của bất kỳ tiến trình nào trong hệ thống Linux. Nó cho phép bạn đặt giới hạn hoặc ngắt tiến trình khi nó đạt đến ngưỡng sử dụng CPU cao.
CPULimit hoạt động bằng cách theo dõi việc sử dụng CPU của các tiến trình và gửi tín hiệu cho chúng khi chúng vượt quá giới hạn đã đặt. Hai tín hiệu chính được sử dụng là:
Trước khi sử dụng CPULimit, bạn cần cài đặt nó trên hệ thống của mình. Việc cài đặt có thể khác nhau tùy thuộc vào hệ điều hành Linux bạn đang sử dụng. Dưới đây là hướng dẫn cài đặt cho một số hệ điều hành phổ biến:
sudo apt-get install cpulimit
yum install epel-release
yum install cpulimit
cpulimit [options] <pid> <limit>
options
: Các tùy chọn bổ sung để điều chỉnh hành vi của CPULimit
<pid>
: ID tiến trình của tiến trình mà bạn muốn giới hạn
<limit>
: Giới hạn CPU cho tiến trình, được biểu thị dưới dạng tỷ lệ phần trăm (ví dụ: 50 cho 50% CPU)
-l, –limit=N : Phần trăm hoặc CPU được phép sử dụng từ 0 đến 200
-v, –verbose: Hiển thị thống kê kiểm soát
-z, –lazy: Thoát khi không có tiến trình đích hoặc tiến trình đã kill
-i, –include-children: Giới hạn các tiến trình children
-h, –help: Hiển thị các trợ giúp
-b, –background: Để chạy nền
-c, –cpu: Để chỉ định CPU có trông hệ thống hãy sử dụng tuỳ chọn này
Mình sẽ chạy một lệnh dd ổ cứng để tạo ra một tiến trình sử dụng full CPU. Khi đó các bạn sẽ thấy xuất hiện PID (ảnh minh hoạ PID là 1175) sau đó bạn hãy mở top -c hoặc htop lên bạn sẽ thấy dòng PID 1175 của mình CPU đã được chiếm 100% (1core)
dd if=/dev/zero of=/dev/null &
Bây giờ mình sẽ giới hạn tiến trình 1175 này lại bằng CPULimit, mình sẽ giới hạn 50 bằng lệnh sau:
cpulimit -p 1175 -l 50
Sau khi đã đặt giới hạn các bạn mở top -c hoặc htop lên và kiểm tra thì tiếntrình ban đầu chiếm 100% đã được giảm xuống còn 50%.
Ngoài ra, CPULimit cung cấp nhiều tùy chọn khác để tinh chỉnh cách thức hoạt động của nó. Bạn có thể tham khảo trang man của CPULimit để biết thêm thông tin chi tiết:
man cpulimit
Lưu ý:
Sử dụng CPULimit với quyền root hoặc sudo để đảm bảo bạn có quyền hạn để giới hạn các tiến trình.
Việc giới hạn CPU quá mức có thể ảnh hưởng đến hiệu suất của tiến trình và hệ thống. Hãy cẩn thận khi chọn mức giới hạn phù hợp.
CPULimit có thể không hoạt động hiệu quả với tất cả các loại tiến trình.
CPULimit là một công cụ hữu ích để quản lý việc sử dụng CPU trong hệ thống Linux. Bằng cách sử dụng CPULimit, bạn có thể đảm bảo rằng các tiến trình ngốn tài nguyên không ảnh hưởng đến hiệu suất chung của hệ thống và các ứng dụng khác. Hãy sử dụng CPULimit một cách cẩn thận và có trách nhiệm để đạt được hiệu quả tốt nhất.
Chúc các bạn thành công!