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.
- Linux'ta En Yüksek Bellek ve CPU Kullanımına Göre En İyi Çalışan İşlemleri Bulun
- Cpustat - Linux'ta İşlemleri Çalıştırarak CPU Kullanımını İzler
- CoreFreq – Linux Sistemleri için Güçlü Bir CPU İzleme Aracı
- Linux'ta En Yüksek Bellek ve CPU Kullanımına Göre En İyi Çalışan İşlemleri Bulun
- Linux Performansını İzlemek için 20 Komut Satırı Aracı
- 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.