Ana Sayfa » *nix » CPU Limit ile Süreçlerin İşlemci Kullanımını Sınırlamak

CPU Limit ile Süreçlerin İşlemci Kullanımını Sınırlamak


BerbatKötüİdare EderGüzelHarika (Toplam 3 oy. 5 puan üzerinden ortalama 4,67 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYuo6xgg' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
CPU Limit isimli küçük bir programcık var. altında çalışmakta olan bu program ile süreçlerin cpu kullanımlarını limitleyebiliyorsunuz. Örneğin, cpu'yu sömürmekte olan bir process diğer süreçlerin doğru düzgün iş yapamaz hale gelmesine neden oluyorsa, bahsi geçen bu süreç yada süreçlerin işlemci kullanımlarına sınır getirebilirsiniz. CPU limit

Yeri geldiğinde çok kullanışlı olabilen bu programı kaynak koddan kurmak çok basit ayrıca, default paket depolarında da bulunuyor.

Bu yazıda, cpulimit'in kurulumu ve kullanımından bahsetmek istiyorum.

KURULUM


Önce paketi download edin, kodları almak için iki yöntem var.
Birincisi direk download:
# cd /usr/local/src
# wget http://downloads.sourceforge.net/cpulimit/cpulimit-1.1.tar.gz

İkincisi ise SVN'de çekmek.

# cd /usr/local/src
# svn checkout https://cpulimit.svn.sourceforge.net/svnroot/cpulimit/trunk cpulimit
NOT: Kodları svn kullanarak çekmek için sisteminizde subversion paketinin yüklü olması gerekir. Ayrıca SVN'deki kodlar UNSTABLE olabilir.

Download işleminden sonra kuralım.

# tar xvf cpulimit-1.1.tar.gz
# cd cpulimit-1.1
# make
# cp cpulimit /usr/bin
# cd ..
# rm -rf cpulimit

yada Kullanıyorsanız

Kurulumu apt-get ile de yapabilirsiniz.

cagri@lab20:/$ sudo apt-get update
cagri@lab20:/$ sudo apt-get install cpulimit

Kurulumdan sonra kullanımı ile ilgili bir iki şeyden de bahsetmek istiyorum.

KULLANIM


Mesela, firefox'un işlemci kullanım limiti'ni %30'a set etmek istiyorsanız örnek komut şu şekilde:
# cpulimit -e firefox -l 30

Aynı işi sürecin ID'sini kullanarak da yapabilirsiniz:

# cpulimit -p 8153 -l 30
NOT: Yukarıdaki komutlar sonuç vermiyor ve Usage: cpulimit {executable name or path} {max cpu percentage} gibi bir çıktı alıyorsanız, muhtemelen kaynak kodları svn kullanmadan download ettiniz ve kurulumu bu şekilde yaptınız. Nedendir bilmem download edilen tarball'un içinde help dosyaları vs.gelmemektedir. Bu nedenle cpulimit'i ya svn'den yeniden kurmanız ya da çıktıda belirtildiği gibi komutu “cpulimit firefox 30” şeklinde vermeniz gerekir.

Ayrıca, örneğin firefox o an çalışmıyorsa, cpulimit aşağıdaki gibi bir uyarı verip ilgili süreç başlayana kadar bekleye gececektir.

Warning: no target process found. Waiting for it...

Firefox'u açtığınız zaman ise süreç ID'si tespit edilerek cpulimit uygulaması devreye sokulacaktır. Cpulimit'i background'da çalıştırmak için CTRL Z kombinasyonu kullanılabilir ya da bir scrip yazılabilir. (Kaynak bölümündeki linklerde bir script örneği bulunuyor.)

SMP Bilgisayarlar ve cpulimit

Bilgisayarınızda birden fazla işlemci ya ya da çekirdek bulunuyorsa, limitleme işlemi yaparken bu durumu gözönüne almalısınız. Örneğin sistemde 2 adet cpu bulunuyorsa ve yukarıdaki örneğe göre firefox'un toplam işlemci gücünün %3o'unu kullanmasını hedefliyorsanuz limit'e 60 demelisiniz. Zira iki cpu için tavan değer %200'dür.

Proje'nin adresi şu:
http://cpulimit.sourceforge.net/

Diğer kaynaklar:
http://www.cyberciti.biz/faq/cpu-usage-limiter-for-linux/
http://ubuntuforums.org/showthread.php?t=992706

Visited 2.725 times, 1 visit(s) today
Kategoriler: *nix,ipucu |

Bu yazılar da ilginizi çekebilir:


- Daha Hızlı Firefox: Swiftfox ve Swiftweasel
- Ubuntu 9.04 Üzerine VMWare Server 2.0 Kurulumu
- Yet Another Password Encryption Tool (Yapet) ile Şifre Güvenliği
- Firefox add-on: Nagios Checker
- Advanced Copy – CP Komutu ve Progress Bar

Yorumlar


  1. mustafa | (Eylül 5th, 2009 2:49 am)

    Merhaba,
    anladığım kadarıyla bu programı normal linux kurulumlu ev pc lerinde kullanabiliyoruz.
    Merak ettiğim, centos işletim sistemli sunuculara kurulum yapıp mevcut userleri limitlendirmek mümkünmüdür?

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Sunucularda da kullanmak mümkün. Kullanıcıların başlattığı süreçlere limit uygulaması yapabilirsiniz.

    Ancak kullanıcı süreci durdurup yeniden başlatırsa limit ortadan kalkar. Fakat bu durumu önlemek için de işi otomatize edecek basit bir shell script yazılabilir.

    [Cevapla]

    amonyak tarafından yanıtlandı.

    Merhaba,

    Bahsettiğiniz shell scripti nereden bulabiliriz? Sizde varsa paylaşırmısınız.

    Ayrıca centos sunucuda RAM limitlendirmesi yapacak bir program biliyormusunuz?

    Şimdiden teşekkür ederim…

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Script http://ubuntuforums.org/showthread.php?t=992706 adresinde var. Memory limitleme ile ilgili ise malesef bildigim bir uygulama yok.

    [Cevapla]

Trackbacks

Yorumda bulunun.