CPU Limit ile Süreçlerin İşlemci Kullanımını Sınırlamak
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. linux 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. |
Yeri geldiğinde çok kullanışlı olabilen bu programı kaynak koddan kurmak çok basit ayrıca, default debian 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
debian yada ubuntu 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
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
Trackbacks
Yorumda bulunun.
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]
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]
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]
Script http://ubuntuforums.org/showthread.php?t=992706 adresinde var. Memory limitleme ile ilgili ise malesef bildigim bir uygulama yok.
[Cevapla]