Ubuntu Server’da CPU Isolation (isolcpus) Parametresi

Ubuntu Server ortamlarında yüksek performanslı uygulamalar için CPU kaynaklarını optimize etmek kritik öneme sahiptir.

Reklam Alanı

Ubuntu Server ortamlarında yüksek performanslı uygulamalar için CPU kaynaklarını optimize etmek kritik öneme sahiptir. isolcpus parametresi, belirli CPU çekirdeklerini sistem scheduler’ından izole ederek, bu çekirdeklerin yalnızca belirli süreçler tarafından kullanılmasını sağlar. Bu özellik, özellikle gerçek zamanlı iş yükleri, düşük gecikmeli veritabanı sunucuları veya sanal makineler gibi senaryolarda faydalıdır. Standart Linux kernel parametresi olan isolcpus, GRUB bootloader üzerinden etkinleştirilir ve Ubuntu’nun varsayılan yapılandırmasıyla uyumludur. Bu makalede, parametrenin işleyişini, Ubuntu Server’a entegrasyon adımlarını ve pratik kullanım ipuçlarını detaylı olarak ele alacağız. Böylece, sunucu yöneticileri kendi ortamlarında verimli bir şekilde uygulayabilir.

isolcpus Parametresinin İşleyişi ve Kullanım Alanları

isolcpus parametresi, Linux kernel’inin boot aşamasında belirtilen CPU numaralarını (örneğin, 2,4,6) scheduler’dan ayırır. Bu sayede, sistemin genel süreçleri bu çekirdekleri kullanamaz; yalnızca affinity ayarlanmış özel uygulamalar erişebilir. Bu izolasyon, IRQ dengelenmesini engelleyerek (irqbalance daemon’u devre dışı bırakıldığında) gecikmeleri minimize eder. Yüksek frekanslı trading sistemleri veya NFV (Network Function Virtualization) gibi alanlarda tercih edilir.

Uygulama senaryolarında, çok çekirdekli sunucularda (örneğin, 16 çekirdekli bir AMD EPYC işlemci) ilk 4 çekirdeği genel sistem için, kalanları izole ederek ayrıştırma yapılabilir. Bu yaklaşım, CPU kullanımını %20-30 oranında daha öngörülebilir hale getirir. Parametre, kernel 2.6’dan beri desteklenir ve Ubuntu 20.04 LTS ile 22.04 LTS sürümlerinde sorunsuz çalışır. İzole çekirdekler, taskset veya numactl gibi araçlarla atanır.

Ubuntu Server’da isolcpus Yapılandırması

GRUB Konfigürasyon Dosyasını Düzenleme

İlk adım, /etc/default/grub dosyasını nano veya vim ile açmaktır. GRUB_CMDLINE_LINUX_DEFAULT satırına “isolcpus=2-7,14-15” gibi bir ifade ekleyin. Burada 2-7 ve 14-15 numaralı çekirdekler izole edilir. nohz_full=2-7,14-15 parametresiyle birlikte kullanıldığında, tam nohz (tickless kernel) modu etkinleşir ve kesmeleri azaltır. Değişiklikleri kaydedin ve sudo update-grub komutunu çalıştırın. Bu işlem, GRUB menüsünü yeniden oluşturur ve bir sonraki boot’ta parametreleri yükler.

Değişiklikleri Uygulama ve Sistem Yeniden Başlatma

Konfigürasyon sonrası sudo reboot ile sistemi yeniden başlatın. Boot sonrası etkinliği doğrulamak için cat /proc/cmdline komutunu kullanın; isolcpus parametresinin listelendiğini göreceksiniz. İzole çekirdekleri görmek için cat /proc/isolcpus ile listeleyin. IRQ dengelenmesini önlemek adına systemctl disable irqbalance ve systemctl stop irqbalance komutlarını çalıştırın. Bu adımlar, Ubuntu’nun systemd tabanlı yapısında kalıcıdır.

Uygulamaları İzole Çekirdeklere Atama

Özel bir uygulamanın (örneğin, bir Java servisi) izole çekirdekleri kullanması için systemd service dosyasında CPUAffinity=2-7 belirtin veya komut satırında taskset -c 2-7 /path/to/app gibi çalıştırın. Örnek: Bir PostgreSQL veritabanı için /etc/systemd/system/postgresql.service dosyasına [Service] bölümüne CPUAffinity=4-7 ekleyin, ardından systemctl daemon-reload ve systemctl restart postgresql ile uygulayın. Performans izleme için htop veya mpstat -P ALL 1 kullanın; izole çekirdeklerde sistem yükü sıfır olmalıdır.

En İyi Uygulamalar ve Dikkat Edilecek Hususlar

isolcpus kullanırken, sunucunun çekirdek sayısını lscpu ile belirleyin ve en az %25’ini izole edin. NUMA mimarili sistemlerde numactl –cpunodebind=1 ile birleştirin. IRQ’ları manuel pin’lemek için /proc/irq/*/smp_affinity dosyalarını düzenleyin (hex formatında, örneğin echo 2 > /proc/irq/XX/smp_affinity ile IRQ’yu CPU 1’e atayın). Test ortamında stres-ng –cpu 0 –cpu-method matrixprod ile yük uygulayarak gecikmeleri ölçün.

  • İzole çekirdek sayısını iş yüküne göre ölçekleyin; fazla izolasyon kaynak israfı yaratır.
  • Tuned profiliyle (tuned-adm profile realtime-virtual-host) otomatik optimizasyon sağlayın.
  • Kernel güncellemelerinde parametrenin korunduğunu doğrulayın.

Potansiyel sorunlar arasında, yanlış konfigürasyonla sistem donması veya scheduler dengesizliği yer alır. Her zaman yedek GRUB menüsüyle (Shift tuşuyla boot menüsüne girin) geri dönüş sağlayın. Bu uygulamalarla, Ubuntu Server’ınızda tutarlı performans elde edersiniz.

Sonuç olarak, isolcpus parametresi Ubuntu Server’ı kurumsal düzeyde optimize etmek için güçlü bir araçtır. Adım adım uygulayarak, düşük gecikmeli ortamlar oluşturabilir ve kaynak kullanımını maksimize edebilirsiniz. Düzenli izleme ve testlerle uzun vadeli faydalar sağlayın; bu yaklaşım, modern bulut ve edge computing ihtiyaçlarını karşılar.

Kategori: Genel
Yazar: Editör
İçerik: 530 kelime
Okuma Süresi: 4 dakika
Zaman: Bugün
Yayım: 06-03-2026
Güncelleme: 06-03-2026