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ể:
Đảm bảo hiệu suất hệ thống: Ngăn chặn các tiến trình ngốn tài nguyên ảnh hưởng đến tốc độ và khả năng phản hồi của hệ thống.
Nâng cao trải nghiệm người dùng: Giảm thiểu tình trạng giật lag, treo máy do thiếu hụt CPU.
Bảo vệ hệ thống: Tránh tình trạng quá tải CPU dẫn đến lỗi phần mềm hoặc thậm chí hư hỏng phần cứng.
Quản lý hệ thống hiệu quả: Dành CPU cho các ứng dụng quan trọng, ưu tiên, đảm bảo hoạt động trơn tru cho các tác vụ then chốt.
CPULimit là gì?
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.
Cách thức hoạt động:
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à:
SIGSTOP: Tín hiệu này tạm dừng tiến trình, khiến nó ngừng sử dụng CPU.
SIGCONT: Tín hiệu này tiếp tục tiến trình, cho phép nó bắt đầu sử dụng CPU một lần nữa.
CPULimit sử dụng thông minh hai tín hiệu này để:
Giới hạn việc sử dụng CPU của một tiến trình: Bạn có thể đặt giới hạn cho lượng CPU mà một tiến trình cụ thể có thể sử dụng. Khi tiến trình vượt quá giới hạn này, CPULimit sẽ gửi tín hiệu SIGSTOP cho nó để tạm dừng. Tiến trình chỉ được tiếp tục khi nó sử dụng ít CPU hơn mức giới hạn trong một khoảng thời gian nhất định.
Giảm thiểu việc sử dụng CPU tổng thể: CPULimit cũng có thể giúp giảm thiểu việc sử dụng CPU tổng thể của hệ thống. Bằng cách theo dõi việc sử dụng CPU của tất cả các tiến trình đang chạy, nó có thể xác định và tạm dừng các tiến trình đang sử dụng quá nhiều CPU, giải phóng tài nguyên cho các tiến trình khác cần nó hơn.
Cài đặt CPULimit
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:
Debian/Ubuntu:
sudo apt-get install cpulimit
RHEL/CentOS và Fedora:
yum install epel-release
yum install cpulimit
Cách sử dụng CPULimit
Cấu trúc cú pháp cơ bản của CPULimit như sau:
cpulimit [options] <pid> <limit>
Trong đó:
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)
Các tuỳ chọn
-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
Các mục tiêu
-p, –pid=N: PID của tiến trình
-e, –exe=FILE: Tên file của chương trình thực thi hoặc tên đường dẫn
Ví dụ thực tế
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
Lưu ý: Bạn không thoát màn hình khi sử dụng lệnh này. Và để kiểm tra bạn hãy mở một cửa số khác để kiểm tra.
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.