Tek bir uygulamanın CPU kullanımını sınırlayabilir miyim?


Yanıtlar:


16

Tıpkı cpulimit'e bir alternatif olarak:

Kapak komutunu nice komutuyla başlatabilirsiniz, örn.

nice -n 19 clamscan.

Ayrıntılar man niceiçin bakınız.

Bu mu DEĞİL CPU sınırlamak, ama öyle önceliklerini düşürün sürecin.

Ayrıca reniceçalışan işlemlerin önceliğini de değiştirmek gerekir.


2
Hala bir sürü cpu yeme çalışıyor gibi görünüyor ...
Pitto

4
Başka hiçbir işlem cputime gerektirmediği sürece, clamscan çok şey alır. Ancak (daha yüksek bir önceliğe sahip olan) başka bir işlemin görev zamanına ihtiyacı olduğu anda, istiridye şansı yoktur. cpulimit mutlak işlem süresini sınırlar ve hoş göreli işlem süresini sınırlar.
Clausi

2
+1. niceing, geleneksel bir yol ve iyi bir sebep.
loevborg

Belirli uygulamaların çalışması için varsayılan hoş bir değer tanımlamak için herhangi bir araç var mı? Tercihen tüm hazır ayarlarınızı yan yana karşılaştırmanıza olanak tanıyan bir araçtır.
Jonny Asmar

19

yükleme CPULimit

sudo apt-get install cpulimit

Bir işlemin CPU kullanımını sınırlamak için farklı yöntemler sunar foo ,% 20

  • İşlem adına göre: sudo cpulimit -e foo -l 20 .

  • Mutlak yol adına göre: sudo cpulimit -P /usr/bin/foo -l 20

  • PID ile:

    1. Sürecin PID bulun: pidof foo. (örneğin, 1881 çıktısı)
    2. sudo cpulimit -p 1881 -l 20

Hedef süreç bulunamadı ... Belki de clamscan'ı çalıştırmak için bir senaryom olduğu için mi? Yaparım: sudo cpulimit -e /etc/cron.hourly/virusscan -l 15
Pitto

@ Pitto: Yanlış bir komut girdiniz, /etc/cron.hourly/virusscanbir işlem değil. Sınırlamanız gerekiyorsa clamscan, çalıştırın sudo cpulimit -e clamscan -l 15.
Sid

Ah! Sağ! Bu yüzden rc.local'da başlangıçta cpulimit'i başlatmalıyım, değil mi?
Pitto

2
sudoişlem bir sistem işlemi değildir. Tıpkı bir not olarak
Anwar

Programlı olarak kullanılırsa bu gerçekten temiz bir çözüm olurdu! Örüntü tabanlı aramaları destekliyor mu?
Jonny Asmar

4

Bu Clausi'nin cevabı hakkında bir yorum olacaktı (bence bir sistem yönetimi açısından en "doğru" olduğuna inanıyorum) ama yorum kutusuna sığmayacak kadar büyük bir şeye dönüştü.

  • Clamscan'ın belirli bir hız ile sınırlandırılması için sabit bir işi vardır, bu sadece daha uzun süreceği anlamına gelir. CPU'yu daha uzun süre çekişecek.

  • İşlemcinizin olabildiğince hızlı çalışmasına izin verin, CPU'nuzu sonuna kadar kullandığınız anlamına gelir. Çok "güzel" kılmak, diğer süreçlerin kendi işlerini kendileri yapmasına izin vereceği anlamına gelir. Bu, başka pek çok meşgul süreç varsa, evet, kendi işini yapmak uzun zaman alacaktır, ancak orada hiçbir şey yoksa, sadece iş yükünü parçalayacaktır.


3

Sistemd ile istiridye çalıştırıyorsanız, CPUQuotaseçeneği kullanabilirsiniz .

Düzenleme /lib/systemd/system/clamav-daemon.servicebu çizgiyi içerecek şekilde [Service]bölümündeki:

CPUQuota=20%

Ardından hizmeti yeniden başlatın

sudo systemctl daemon-reload
sudo systemctl reload-or-restart clamav-daemon

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.