Linux Sunucularda Kullanıcı Başına CPU Limiti Nasıl Ayarlanır? (Ubuntu & CentOS)
- Linux Sunucularda Kullanıcı Başına CPU Limiti Nasıl Ayarlanır? (Ubuntu & CentOS)
- CPUQuota Mantığı Nasıl Çalışır?
- Adım Adım CPU Limiti Ayarlama (Ubuntu, Debian, CentOS 7/8, AlmaLinux)
- 1. Kullanıcının UID (User ID) Değerini Bulun
- 2. Limiti Uygulayın
- 3. Mevcut Sınırı Kontrol Etmek
- 4. Limiti Tamamen Kaldırmak (Sınırsız Yapmak)
- Bonus: Tüm KeyHelp Kullanıcılarına Tek Seferde Limit Koymak (Otomasyon)
- Sonuç
Sunucu yöneticilerinin en büyük kabuslarından biri “Gürültülü Komşu” (Noisy Neighbor) sorunudur. Bir hosting müşteriniz, yazdığı Node.js uygulamasında sonsuz bir döngüye (infinite loop) girdiğinde veya saldırı aldığında, uygulamanın işlemci kullanımı saniyeler içinde %100’e vurabilir.
Cpanel, KeyHelp veya Plesk gibi paneller RAM limitlerini yönetmekte başarılı olsa da, doğrudan terminal (SSH) üzerinden başlatılan işlemlere (Örn: PM2 ile başlatılan Node.js) müdahale edemezler. İşte tam bu noktada imdadımıza Linux’un kalbinde yatan systemd ve cgroups yetişiyor.
CPUQuota Mantığı Nasıl Çalışır?
Linux çekirdeğinde işlemci gücü yüzdelik dilimlerle hesaplanır. Formül oldukça basittir: 1 Tam Çekirdek (1 vCPU) = %100 CPUQuota
Yani sunucunuzda 16 çekirdek varsa ve siz bir kullanıcıya %200 limit verirseniz, o kullanıcı sistemin sadece 2 çekirdek gücü kadarını kullanabilir. Kalan 14 çekirdek diğer müşterileriniz için güvende kalır.
Adım Adım CPU Limiti Ayarlama (Ubuntu, Debian, CentOS 7/8, AlmaLinux)
Modern Linux dağıtımlarının neredeyse tamamı servis yöneticisi olarak systemd kullanır. Bu nedenle anlatacağımız yöntem hem Ubuntu/Debian ailesinde hem de CentOS/RHEL/AlmaLinux ailesinde kusursuz çalışır.
1. Kullanıcının UID (User ID) Değerini Bulun
Limitlendirme işlemini kullanıcı adı (username) üzerinden değil, kullanıcının Linux ID’si (UID) üzerinden yapacağız. Örneğin, ornekuser isimli müşterinin UID’sini bulmak için SSH üzerinden şu komutu yazın:
Bash
id -u ornekuser
Bu komut size 1005 gibi bir sayı döndürecektir.
2. Limiti Uygulayın
Bulduğunuz UID değerini kullanarak kullanıcıya limit atayın. Aşağıdaki komut, ornekuser isimli müşterinin sunucuda çalıştıracağı tüm işlemleri (Web sitesi, Cron görevleri, PM2 vb.) toplamda 1 Çekirdek (1 vCPU) ile sınırlandırır:
Bash
systemctl set-property user-1005.slice CPUQuota=100%
Eğer başlangıç seviyesi bir paket sunuyorsanız ve yarım çekirdek (0.5 vCPU) vermek isterseniz:
Bash
systemctl set-property user-1005.slice CPUQuota=50%
3. Mevcut Sınırı Kontrol Etmek
Bir müşteriye daha önce ne kadar limit verdiğinizi görmek isterseniz şu komutu kullanabilirsiniz:
Bash
systemctl show user-1005.slice -p CPUQuota
Çıktı CPUQuota=100% şeklindeyse işlem başarılıdır. Eğer [not set] yazıyorsa o kullanıcının bir sınırı yoktur ve tüm işlemciyi kullanabilir.
4. Limiti Tamamen Kaldırmak (Sınırsız Yapmak)
Kullanıcı daha üst bir pakete geçtiğinde veya sınırı kaldırmak istediğinizde, eşittir (=) işaretinden sonrasını boş bırakarak komutu tekrar çalıştırın:
Bash
systemctl set-property user-1005.slice CPUQuota=
Bonus: Tüm KeyHelp Kullanıcılarına Tek Seferde Limit Koymak (Otomasyon)
Eğer halihazırda KeyHelp, cPanel veya benzeri bir sistem kullanıyorsanız ve sunucunuzdaki mevcut tüm müşterilere tek seferde 1 vCPU (1 Çekirdek) sınırı koymak istiyorsanız, SSH üzerinden root yetkisiyle aşağıdaki basit bash döngüsünü çalıştırabilirsiniz.
(Not: Aşağıdaki script, kullanıcı dizinlerinin /home/users/ altında olduğu KeyHelp mimarisine göre yazılmıştır. cPanel için dizini /home/ olarak değiştirebilirsiniz).
Bash
for d in /home/users/*; do
kullanici=$(basename "$d")
uid=$(id -u "$kullanici" 2>/dev/null)
if [ -n "$uid" ]; then
echo "$kullanici (UID: $uid) için 1 vCPU sınırı ayarlanıyor..."
systemctl set-property user-$uid.slice CPUQuota=100%
fi
done
echo "İşlem Tamamlandı! Tüm mevcut müşteriler sınırlandırıldı."
Sonuç
Bu basit ama güçlü yöntem sayesinde paylaşımlı sunucularınızı modern bir bulut altyapısına (PaaS) dönüştürebilir, “kaynak sattıkça kazanç sağlayan” bir iş modeli kurabilirsiniz. İşlemci sömüren hesapları engellemek, diğer müşterilerinizin hız ve performans kalitesini anında artıracaktır.





