Nội dung
Trong quá trình sử dụng và vận hành máy chủ server/vps mình gặp rất nhiều trường hợp khi mở top -c
hoặc htop sẽ thấy một hoặc nhiều tiến trình sử dụng CPU rất nhiều. Điều đó sẽ làm cho hệ thống bạn hoạt động chậm lại và gây ra hiện tượng overload. Ở bài viết này AZDIGI sẽ giới thiệu đến bạn một ứng dụng giúp bạn giới hạn lại tiến trình đang sử dụng nhiều CPU đó là CPULimit. Hãy cùng tìm hiểu và thực hiện nhé.
CPULimit là gi ?
CPULimit là một công cụ dòng lệnh đơn giản nhưng mạnh mẽ để giới hạn và kiểm soát việc sử dụng CPU của bất kỳ tiến trình nào trong hệ thống, cho phép bạn đặt giới hạn hoặc làm gián đoạn tiến trình đó khi đạt đến ngưỡng cửa cao.
Để hạn chế việc sử dụng CPU của tiến trình thì CPULimit sẽ gửi tín hiệu SIGSTOP và SIGCONT đến các tiền trình và được xác định bởi hệ thống tải. Nó dựa vào hệ thống tập tin /proc
để đọc các PID và các biện pháp sử dụng CPU của hệ thống.
Khi một tiến trình đang sử dụng 100% bạn có thể giới hạn tiến trình đó chỉ được phép sử dụng 50% hoặc là 20%. Để sử dụng bạn hãy cài đặt CPULimit vào nhé.
Hướng dẫn cài đặt CPULimit
Để cài đặt CPULimit bạn thực hiện cài đặt như sau. Lưu ý bạn hãy lựa chọn lệnh cài với hệ điều hành mà bạn đang sử dụng để cài đặt vào cho chính xác. Nhưng trước khi cài đặt bạn hãy SSH vào máy chủ đã.
SSH vào máy chủ của bạn
Đầu tiên các bạn cần SSH vào VPS của mình với quyền Root, nếu chưa biết cách SSH thì các bạn có thể xem hướng dẫn bên dưới.
Đối với Debian/Ubuntu
sudo apt install cpulimit
Đối với RHEL/CentOS và Fedora
yum install epel-release yum install cpulimit
Cách sử dụng CPULimit
Để sử dụng CPULimit bạn cần nằm cú pháp và các tuỳ chọn thực hiện đi kèm để sử dụng một cách chính xác. Bên dưới là phần liệt kê và mô tả của mình bao gồm
Cú pháp
cpulimit [OPTIONS…] TARGET
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.
Các ví dụ thực tế
Trong phần này mình sẽ hướng dẫn bạn giới hạn một process với CPULimit như sau.
Ở đây là một bài ví dụ và mình sẽ chạy một lệnh dd
ổ cứng để tạo ra tiến trình sử dụng full CPU. Khi đó bạn sẽ thấy xuất hiện PID (ảnh minh hoạ PID là 4074) sau đó bạn hãy mở top -c
lên bạn sẽ thấy dòng PID 4074 của mình CPU đã được chiếm 100% (1core)
Lưu ý: PID ở bài hướng dẫn và trên màn hình bạn đang dùng sẽ khác nhau. Hãy nhập PID tương ứng ở màn hình của bạn.
Bây giờ mình sẽ giới hạn tiến trình này lại bằng CPULimit, mình sẽ giới hạn 50. Mình sẽ chạy lệnh sau
cpulimit --pid 4074 --limit 50
Kết quả trả về như sau
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.
top -c
Sau khi đã đặt giới hạn mình mở top -c
lên và kiểm tra thì tiền trình ban đầu chiếm 100% đã được giảm xuống còn 50%.
Kết luận
Như vậy với CPULimit sẽ giúp bạn kiểm soát và giới hạn các tiến trình hoạt động đang chiêm dụng nhiều CPU. Từ đó sẽ giúp máy chủ bạn giảm bớt tài nguyên và có nhiều tài nguyên cho các tiến trình khác sử dụng hơn. Nếu thấy bài viết hữu ích, hãy chia sẻ rộng rãi đến mọi người để cùng biết cách cài đặt nhé.
Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:
- Hotline 247: 028 888 24768 (Ext 0)
- Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: support@azdigi.com