Được cảnh báo: Ở đây có rồng.
Khi bạn bắt đầu đi vào con đường kiểm soát cụ thể tài nguyên của ứng dụng/quy trình/luồng ở mức độ này, bạn bắt đầu mở hộp Pandora theo nghĩa đen về các sự cố khi đến lúc gỡ lỗi sự cố mà giới hạn tốc độ của bạn không tính đến.
Điều đó nói rằng, nếu bạn tin rằng bạn biết mình đang làm gì, thì có ba tùy chọn dành cho bạn: đẹp
, cpulimit
, và các nhóm kiểm soát (Cgroups).
Đây là TL; DR cho ba phương pháp này:
Tốt đẹp ⢠tốt đẹp {quy trình}
Đây là một cách rất đơn giản để ưu tiên một tác vụ và khá hiệu quả đối với các mục đích sử dụng "một lần", chẳng hạn như giảm mức độ ưu tiên của một tác vụ chạy dài, tốn nhiều điện toán nên sử dụng nhiều CPU hơn khi máy không được sử dụng bởi các nhiệm vụ (hoặc con người) khác.
Giới hạn CPU ⢠cpulimit -l 60 {tiến trình}
Nếu hiệu suất máy chủ của bạn bị ảnh hưởng (còn gọi là ngừng hoạt động) khi mức sử dụng CPU vượt quá một mức nhất định, thì cpulimit
có thể giúp giảm áp lực lên hệ thống.Nó thực hiện điều này bằng cách tạm dừng quá trình ở các khoảng thời gian khác nhau để giữ nó dưới một mức trần xác định bằng cách gửi ĐĂNG KÝ
và KÝ HIỆU
tín hiệu cho quá trình. cpulimit
không thay đổi đẹp
giá trị của quy trình, thay vào đó, nó theo dõi và kiểm soát việc sử dụng CPU trong thế giới thực.
bạn sẽ thấy rằng cpulimit
hữu ích khi bạn muốn đảm bảo rằng một quy trình không sử dụng nhiều hơn một phần nhất định của CPU, điều mà câu hỏi của bạn ám chỉ, nhưng một nhược điểm là quy trình không thể sử dụng tất cả thời gian CPU có sẵn khi hệ thống không hoạt động ( cái mà đẹp
cho phép).
CNhóm
Sudo cgcreate -g cpu:/bị hạn chế
Sudo cgset -r cpu.shares=768 bị hạn chế
Sudo cgexec -g cpu: bị hạn chế {tiến trình}
Nhóm â nhóm điều khiển â là một tính năng được tích hợp trong nhân Linux cho phép bạn kiểm soát cách phân bổ tài nguyên. Với Cgroups, bạn có thể chỉ định bao nhiêu CPU, bộ nhớ, băng thông, hoặc sự kết hợp của các tài nguyên này có thể được sử dụng bởi các quy trình được gán cho một nhóm.
Một lợi thế chính của Cgroups so với đẹp
hoặc cpulimit
là các giới hạn được áp dụng cho một tập hợp các quy trình; Không chỉ là một. đẹp
và cpulimit
cũng bị giới hạn trong việc hạn chế việc sử dụng CPU của một quy trình, trong khi các nhóm có thể giới hạn các tài nguyên quy trình khác.
Nếu bạn đi sâu vào lỗ hổng của Cgroups thì bạn có thể siêu tối ưu hóa hệ thống cho một nhóm tác vụ cụ thể.