Làm thế nào để hạn chế việc sử dụng CPU của bất kỳ quá trình trong Linux
Bạn đã bao giờ trải qua tình huống mà bạn mở một ứng dụng cụ thể (như Firefox) và nó làm cho toàn bộ hệ thống bị bế tắc? Nếu bạn đang chạy một máy chủ web, điều cuối cùng mà bạn muốn xem là có một ứng dụng treo toàn bộ hệ thống và đưa tất cả các trang web xuống.
Cpulimit là một ứng dụng cho Linux có thể hạn chế việc sử dụng CPU của một quá trình. Nó rất hữu ích nếu bạn muốn hạn chế một ứng dụng cụ thể chiếm quá nhiều tài nguyên CPU và do đó làm rơi hệ thống. Điều này cũng có thể hữu ích khi bạn cần chạy một số chương trình chuyên sâu cùng một lúc.
Lưu ý : cpulimit sẽ làm việc cho tất cả các bản phân phối Linux. Trong hướng dẫn này, chúng tôi sẽ sử dụng Ubuntu để minh họa.
Cài đặt
Trong Ubuntu, bạn có thể cài đặt cpulimit qua Trung tâm Phần mềm Ubuntu, bấm vào đây để cài đặt, hoặc gõ lệnh sau vào terminal:
sudo apt-get cài đặt cpulimit
Sử dụng
Để hạn chế quy trình, hãy sử dụng lệnh
sudo cpulimit -p PID -l CPU%
PID là ID tiến trình của ứng dụng đang chạy và CPU% là phần trăm (0-100, chỉ số) của tài nguyên CPU được phép cho ứng dụng. Bạn có thể lấy PID từ System -> Administration -> System Monitor .
Từ ảnh chụp màn hình ở trên, bạn có thể thấy rằng ứng dụng Swiftfox (một biến thể của Firefox) chiếm 68% tài nguyên CPU trước khi giới hạn CPU được thiết lập. Hãy xem điều gì xảy ra khi chúng ta giới hạn mức sử dụng CPU đến 20%.
CPU% ngay lập tức giảm xuống dưới 20% và không bao giờ vượt qua mốc 20% một lần nữa.
Mở rộng cpulimit - Tự động hóa toàn bộ quá trình
Cpulimit rất hữu ích khi bạn gặp một ứng dụng chiếm nhiều tài nguyên CPU, hoặc cần thực hiện công việc hàng loạt. Ngoài ra, bạn cũng có thể thiết lập nó để giám sát hệ thống cho bất kỳ ứng dụng bị lỗi nào. Điều này đặc biệt hữu ích trong việc thiết lập máy chủ.
abcuser từ Ubuntu Diễn đàn đã đưa ra một kịch bản tuyệt vời tự động hóa việc giám sát hệ thống của bạn và hạn chế bất kỳ quá trình nào vượt quá giới hạn CPU đặt trước. Kịch bản cũng cho phép bạn thiết lập danh sách đen / danh sách trắng cho các ứng dụng cụ thể.
Trước khi chúng ta bắt đầu, hãy chắc chắn rằng bạn đã cài đặt cpulimit và gawk .
sudo apt-get cài đặt cpulimit gawk
Tải xuống các tập lệnh tại đây. Giải nén tập tin tar vào thư mục Home của bạn. Bạn nên có hai tập tin bên trong thư mục cpulimit : cpulimit_daemon.sh và cpulimit .
Mở tệp cpulimit_daemon.sh trong trình soạn thảo văn bản của bạn (gEdit) và thay đổi như sau:
CPU_LIMIT : Đây là tài nguyên CPU tối đa có sẵn cho mỗi ứng dụng. Giá trị mặc định là 20%.
DAEMON_INTERVAL : Đây là khoảng thời gian cho kịch bản để kiểm tra hệ thống. Mặc định được đặt thành 3 giây.
BLACK_PROCESS_LIST : Danh sách này chứa danh sách các mục đặc biệt muốn theo dõi. Bạn có thể sử dụng dấu phân cách “|” để bao gồm nhiều quy trình. Ví dụ, " mysql|firefox|gedit
".
WHITE_PROCESSES_LIST : Danh sách này chứa danh sách các mục mà bạn KHÔNG MUỐN theo dõi. Bạn có thể sử dụng dấu phân cách “|” để bao gồm nhiều quy trình. Ví dụ, " mysql|firefox|gedit
".
Lưu ý : Một hoặc cả hai biến BLACK_PROCESSES_LIST và WHITE_PROCESSES_LIST phải trống. Bạn không thể có danh sách đen và danh sách trắng cùng một lúc.
Đang cài đặt
Sao chép tệp cpulimit_daemon.sh vào thư mục / usr / bin /
sudo cp ~ / cpulimit / cpulimit_daemon.sh / usr / bin sudo chmod 700 /usr/bin/cpulimit_daemon.sh
Sao chép tệp cpulimit vào /etc/init.d/folder, đặt quyền cần thiết và làm cho nó chạy trong khi lập trình.
sudo cp ~ / cpulimit / cpulimit /etc/init.d/ sudo chown root: root /etc/init.d/cpulimit sudo chmod + x /etc/init.d/cpulimit sudo cập nhật-rc.d cpulimit mặc định
Bây giờ, khởi động lại hệ thống của bạn. Các daemon cpulimit nên bắt đầu tự động.
Bạn có thể mở một terminal và gõ:
trạng thái sudo dịch vụ cpulimit
để kiểm tra xem daemon cpulimit có đang chạy hay không. Nếu nó không chạy, hãy khởi động nó bằng lệnh
sudo dịch vụ cpulimit bắt đầu
Ngoài ra, hãy dừng nó bằng:
dịch vụ sudo cpulimit stop
Gỡ cài đặt
Để gỡ cài đặt, dưới đây là những gì bạn cần làm:
1. Dừng daemon cpulimit
sudo service cpulimit stop # Dừng cpulimit daemon và tất cả các tiến trình cpulimited
2. Hủy bỏ daemon từ thủ tục khởi động
sudo update-rc.d -f cpulimit remove # Xoá liên kết tượng trưng
3. Xóa thủ tục khởi động
sudo rm /etc/init.d/cpulimit # Xoá tập lệnh khởi động cpulimit
4. Xóa daemon cpulimit
sudo rm /usr/bin/cpulimit_daemon.sh # Xóa script cpulimit daemon
5. Gỡ cài đặt chương trình cpulimit
sudo apt-get loại bỏ cpulimit
Tùy chọn, gỡ cài đặt chương trình gawk
sudo apt-get loại bỏ gawk
Để biết thêm thông tin, hãy tham khảo Diễn đàn Ubuntu để biết thêm chi tiết.
Mã tín dụng: abcuser from Ubuntu Forum