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

trong Linux

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