CPULimit Aracıyla Linux'ta Bir İşlemin CPU Kullanımını Sınırlama


Daha önceki bir yazımızda, Linux'taki herhangi bir işlemin CPU kullanımını sınırlamak ve kontrol etmek için CPUTool'u açıklamıştık. CPU/sistem yükünün tanımlanmış bir eşiği aşması durumunda sistem yöneticisinin bir işlemin (veya işlem grubunun) yürütülmesini kesmesine olanak tanır. Burada cpulimit adlı benzer bir aracın nasıl kullanılacağını öğreneceğiz.

Cpulimit, CPUTool ile aynı şekilde bir işlemin CPU kullanımını kısıtlamak için kullanılır, ancak muadillerine göre daha fazla kullanım seçeneği sunar. Önemli farklardan biri cpulimit'in cputool'dan farklı olarak sistem yükünü yönetmemesidir.

Önerilen Okuma: Linux'ta CPU Bilgisini Almak için 9 Yararlı Komut

Linux'ta Bir İşlemin CPU Kullanımını Sınırlamak için CPULimit Kurun

CPULimit, bir paket yönetim aracı kullanılarak Debian/Ubuntu ve türevlerinin varsayılan yazılım havuzlarından kurulabilir.

sudo apt install cpulimit

RHEL/CentOS ve Fedora'da, önce EPEL deposunu etkinleştirmeniz, ardından gösterildiği gibi cpulimit'i yüklemeniz gerekir.

# yum epel sürümünü yükleyin
# yum cpulimit'i yükle

CUPLimit ile İşlem CPU Kullanımını Sınırlama

Bu alt bölümde cpulimit’in nasıl çalıştığını açıklayacağız. Öncelikle, arka planda yüksek CPU yüzdesine neden olacak bir komut (cputool'u incelerken baktığımız dd komutunun aynısı) çalıştıralım (komutu çalıştırdıktan sonra işlem PID'sinin yazdırıldığını unutmayın) .

dd if=/dev/zero of=/dev/null &

[1] 17918

Daha sonra, yukarıdaki komutun CPU kullanımını izlemek için, çalışan bir Linux sisteminin gerçek sık güncellenen durumunu gösteren top veya bakış araçlarını kullanabiliriz.

top

Yukarıdaki çıktıya baktığımızda, dd işleminin en yüksek CPU zamanı yüzdesini %100,0 kullandığını görebiliriz.

Fakat bunu cputlimit kullanarak aşağıdaki gibi sınırlandırabiliriz. PID'yi belirtmek için --pid veya -p seçeneği kullanılır ve --limit veya -l seçeneği kullanılır Bir işlem için kullanım yüzdesini ayarlamak için kullanılır.

Aşağıdaki komut, dd komutunu (PID 17918) bir CPU çekirdeğinin %50 kullanımını sınırlayacaktır.

sudo cpulimit --pid 17918 --limit 50  

Process 17918 detected

Cpulimit'i çalıştırdıktan sonra dd komutu için mevcut CPU kullanımını top veya bakışlarla görüntüleyebiliriz. Çıktıya göre değer (%51,5-%55,0 veya biraz ötesinde) arasında değişir.

CPU kullanımını ikinci kez şu şekilde kısabiliriz, bu sefer yüzdeyi şu şekilde daha da düşürebiliriz:

sudo cpulimit --pid 17918 --limit 20 

Process 17918 detected

Daha önce yaptığımız gibi, %20-%25,0 arasında veya bunun biraz ötesinde değişen süreç için yeni CPU kullanımını görüntülemek üzere top veya bakışları çalıştırabiliriz.

top

Not: Kabuk etkileşimsiz hale gelir; cpulimit çalışırken herhangi bir kullanıcı girişi beklemez. Bunu sonlandırmak için (CPU kullanımı sınırlama işlemini durdurmalıdır), [Ctrl + C] tuşlarına basın.

Cpulimit'i arka plan işlemi olarak çalıştırmak için --background veya -b anahtarını kullanarak terminalde yer açın.

sudo cpulimit --pid 17918 --limit 20 --background

Sistemde bulunan CPU çekirdeği sayısını belirtmek için --cpu veya -c işaretini kullanın (bu normalde otomatik olarak algılanır).

sudo cpulimit --pid 17918 --limit 20 --cpu 4

Bir sürecin CPU kullanımını sınırlamak yerine onu --kill veya -k seçeneğiyle sonlandırabiliriz. Sürece gönderilen sinyal varsayılan olarak SIGCONT'tır, ancak farklı bir sinyal göndermek için --signal veya -s işaretini kullanın.

sudo cpulimit --pid 17918 --limit 20 --kill 

Uygun bir hedef süreç yoksa veya ölmesi durumunda çıkmak için -z veya --lazy'i buna benzer şekilde ekleyin.

sudo cpulimit --pid 17918 --limit 20 --kill --lazy

Ek bilgi ve kullanım seçenekleri için cpulimit kılavuz sayfasını görüntüleyin.

man cpulimit

CPU bilgilerini bulmak ve CPU/sistem performansını izlemek için aşağıdaki faydalı kılavuzlara göz atın.

  1. Linux'ta En Yüksek Bellek ve CPU Kullanımına Göre En İyi Çalışan İşlemleri Bulun
  2. Cpustat - Linux'ta İşlemleri Çalıştırarak CPU Kullanımını İzler
  3. CoreFreq – Linux Sistemleri için Güçlü Bir CPU İzleme Aracı
  4. Linux'ta En Yüksek Bellek ve CPU Kullanımına Göre En İyi Çalışan İşlemleri Bulun
  5. Linux Performansını İzlemek için 20 Komut Satırı Aracı
  6. 13 Linux Performans İzleme Araçları – Bölüm 2

Karşılaştırma yapmak gerekirse, CPUTool ve CPULimit'i test ettikten sonra, ilkinin daha etkili ve güvenilir bir "işlem CPU kullanımı sınırlaması" işlevi sunduğunu fark ettik.

Bu, her iki aracı da belirli bir işleme karşı çalıştırdıktan sonra gözlemlenen CPU kullanımının yüzde aralığına göre belirlenir. Her iki aracı da deneyin ve aşağıdaki geri bildirim formunu kullanarak düşüncelerinizi bu makaleye ekleyin.