Có thể giới hạn bao nhiêu năng lượng CPU mà một quá trình có thể mất?


16

Tôi đang tự hỏi, có cách nào để nói một quá trình có thể mất bao nhiêu bộ xử lý không?

Vấn đề là tôi đang chuyển đổi video với Arista (trình chuyển đổi video) và tôi cảm thấy khó chịu vì quạt chạy như điên, khi tôi nhìn vào màn hình tác vụ, nó chiếm tới 92% CPU.

Tôi có thể (bằng cách nào đó) nói với nó rằng nó có thể chỉ mất 20%?

Cảm ơn

Câu trả lời:


20

Có công cụ cpulimit (cũng có trong repo debian và nên có trong các bản phát hành khác).

Cách sử dụng khá đơn giản:

cpulimit -p PID -l MAX_CPU_LEVEL

Bạn cũng có thể sử dụng tên quy trình hoặc đường dẫn đầy đủ đến nhị phân. Chi tiết bạn có thể tìm thấy trên trang người đàn ông .


1
ha-ha :), hoạt động hoàn hảo, cảm ơn +1
tương

3
Mã tại URL được ghi chú đã không được cập nhật trong một thời gian khá lâu. Một nhóm khác đã chọn nó và tiếp tục phát triển tại limcpu.sf.net .
James Sneeringer

7

Một cách khác là sử dụng giao diện kernel mới (tương đối) được gọi là cgroups (bài viết wikipedia tại đây ). Nó cho phép kiểm soát chi tiết hơn về số lượng cpu / bộ nhớ / io / etc một quy trình / người dùng / nhóm được phép tiêu thụ.


0

Mặc dù điều này có thể không chính xác những gì bạn đang tìm kiếm, bạn có thể sử dụng renicechương trình để thay đổi mức độ ưu tiên của chương trình để ngăn chương trình làm chậm các ứng dụng khác trên hệ thống. renice -n 20 -p [pid], trong đó [pid] được thay thế bằng ID tiến trình của Arista có thể sẽ làm giảm mức sử dụng tài nguyên của nó và chắc chắn sẽ làm giảm tốc độ hệ thống.


1
OP không phàn nàn về quá trình làm chậm các ứng dụng khác nhưng về việc quạt chạy như điên, renicekhông thể làm gì để chống lại ứng dụng sau. Tốt nhất là nó sẽ làm chậm bộ chuyển đổi video nhưng các quy trình cạnh tranh (nếu có) sẽ duy trì tải CPU như trước đây.
jlliagre
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.