Hạn chế việc sử dụng CPU đối với các Process trong Linux

0
3002
Quảng cáo Facebook

Bạn đã từng trải nghiệm tình huống khi mở một ứng dụng (chẳng hạn như Firefox) và toàn hệ thống sau đó bị ngừng lại? Nếu đang điều hành một máy chủ web, thứ cuối cùng mà bạn thấy sẽ là có một ứng dụng làm đổ vỡ toàn bộ hệ thống và tất cả các website bị sập.

Cpulimit là một ứng dụng cho Linux, nó có thể hạn chế việc sử dụng CPU của một quá trình nào đó. Đây là một công cụ hết sức hữu dụng nếu bạn muốn hạn chế một ứng dụng nào đó đang ngốn quá nhiều tài nguyên CPU và là nguyên nhân gây ra đổ vỡ toàn bộ hệ thống. Ứng dụng cũng hết sức hữu dụng khi bạn cần chạy đồng thời một vài chương trình quan trọng.

Lưu ýCpulimit có thể làm việc với tất cả các phân phối Linux. Trong hướng dẫn này chúng tôi sẽ sử dụng Ubuntu làm ví dụ điển hình.

Cài đặt

Trong Ubuntu, bạn có thể cài đặt cpulimit thông qua Ubuntu Software Center hoặc đánh vào lệnh dưới đây trong terminal:

sudo apt-get install cpulimit

Sử dụng

Để hạn chế một quá trình, hãy sử dụng lệnh dưới đây

sudo cpulimit -p PID -l CPU%

PID là process ID của một ứng dụng đang chạy, còn CPU% là phần trăm (0-100) tài nguyên CPU được cấp phép cho ứng dụng. Bạn có thể lấy PID từ System -> Administration -> System Monitor .

Từ hình trên, bạn có thể thấy rằng ứng dụng Swiftfox (một biến thể của Firefox) ngốn mất 68% tài nguyên CPU trước khi thiết lập hạn chế. Hãy xem điều gì sẽ xảy ra khi chúng ta hạn chế hiệu suất sử dụng của nó xuống còn 20%.

% CPU lúc này được hạ thấp xuống 20% và không bao giờ vượt qua ngưỡng 20% này.

Mở rộng cpulimit – Tự động hóa toàn bộ quá trình

Cpulimit rất hữu dụng khi bạn bắt gặp một ứng dụng nào đó ngốn nhiều tài nguyên CPU hoặc cần phải thực hiện một cụm công việc. Ngoài ra, bạn cũng có thể sử dụng chương trình trong việc tìm ra ứng dụng bị lỗi trong toàn bộ hệ thống. Đây là một ứng dụng đặc biệt hữu dụng trong thiết lập máy chủ.

abcuser từ Ubuntu Forum có đi kèm với một kịch bản tự động hóa việc kiểm tra hệ thống và hạn chế bất cứ quá trình nào vượt quá giới hạn CPU đặt trước. Kịch bản này cũng cho phép bạn thiết lập danh sách đen hoặc danh sách trắng cho các ứn dụng cụ thể.

Trước khi bắt đầu, cần bảo đảm bạn đã cài đặt cpulimit và gawk.

sudo apt-get install cpulimit gawk

Download các kịch bản tại đây. Sau đó tiến hành bung file tar vào thư mục Home của bạn. Bạn sẽ có hai file bên trong thư mục cpulimit đó là: cpulimit_daemon.sh và cpulimit.

Mở file cpulimit_daemon.sh trong bộ soạn thảo văn bản của bạn (gEdit) và thay đổi như dưới đây:

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 để kịch bản kiểm tra hệ thống. Mặc định được thiết lập là 3 giây.

BLACK_PROCESS_LIST: Danh sách này gồm có các mục muốn kiểm tra. Bạn có thể sử dụng dấu “|” để nhóm thêm các quá trình. Cho ví dụ như, “mysql|firefox|gedit”.

WHITE_PROCESSES_LIST: Danh sách gồm có các mục mà bạn không muốn kiểm tra. Bạn có thể sử dụng dấu “|” để nhóm thêm các quá trình. Ví dụ như, “mysql|firefox|gedit”.

Lưu ýMột hoặc cả hai biến BLACK_PROCESSES_LIST và WHITE_PROCESSES_LIST phải trống rỗng. Bạn không thể có một danh sách đen và một danh sách trắng tại cùng thời điểm.

Thiết lập

Copy file 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

Copy file cpulimit vào thư mục /etc/init.d/, thiết lập điều khoản cần thiết và thiết lập chạy trong quá trình khởi động.

sudo cp ~/cpulimit/cpulimit /etc/init.d/

sudo chown root:root /etc/init.d/cpulimit

sudo chmod +x /etc/init.d/cpulimit

sudo update-rc.d cpulimit defaults

Khởi động lại hệ thống. Cpulimit sẽ khởi chạy hoàn toàn tự động.

Bạn có thể mở một terminal và đánh:

sudo service cpulimit status

để kiểm tra xem cpulimit hiện có hoạt động hay không. Nếu không chạy, hãy thực hiện chạy bằng dòng lệnh

sudo service cpulimit start

Và có thể stop nó bằng:

sudo service cpulimit stop

Hủy bỏ cài đặt

Để hủy bỏ cài đặt, đây là những gì bạn cần thực hiện:

1. Stop chương trình.

sudo service cpulimit stop  # Stop cpulimit daemon and all cpulimited processes

2. Remove chương trình khỏi thủ tục khởi động

sudo update-rc.d -f cpulimit remove    # Remove symbolic links

3. Xóa thủ tục khởi động

sudo rm /etc/init.d/cpulimit           # Delete cpulimit boot-up script

4. Xóa cpulimit

sudo rm /usr/bin/cpulimit_daemon.sh    # Delete cpulimit daemon script

5. Hủy cài đặt chương trình cpulimit

sudo apt-get remove cpulimit

Có thể hủy cài đặt chương trình gawk

sudo apt-get remove gawk

Quảng cáo Facebook

LEAVE A REPLY

Please enter your comment!
Please enter your name here