Linux Performans Ayarı: CPU, RAM ve I/O Derinlemesine Analiz
Bir Linux sisteminin optimal performansta çalışması, işlemci (CPU), bellek (RAM) ve disk giriş/çıkış (I/O) kaynaklarının doğru anlaşılması ve etkin yönetilmesiyle mümkündür. Performans darboğazları genellikle bu üç temel alandan birinde veya birleşimiyle ortaya çıkar. Bu kaynakları anlamak, kritik iş yüklerinin kesintisiz çalışmasını sağlamak ve potansiyel sorunları proaktif olarak tespit etmek için esastır.
CPU Performans Analizi: İşlemci Darboğazlarını Tespit Etme
CPU kullanımı, sistemin iş yükünü ne kadar etkin bir şekilde işlediğini gösterir. Yüksek CPU kullanımı her zaman bir problem anlamına gelmez; önemli olan, bu kullanımın hangi süreçlerden kaynaklandığını ve beklenen bir durum olup olmadığını anlamaktır.
Temel CPU Metrikleri ve Araçlar
top ve htop: Anlık sistem durumunu ve süreçlerin CPU kullanımını gösteren interaktif araçlardır.
toptop çıktısında özellikle şu alanlara dikkat edilmelidir:
us(user space): Kullanıcı düzeyindeki uygulamaların CPU kullanımı.sy(system space): Çekirdek (kernel) işlemlerinin CPU kullanımı.id(idle): CPU'nun boşta geçirdiği süre.wa(wait): CPU'nun I/O operasyonlarının tamamlanmasını beklerken geçirdiği süre. Yüksekwadeğeri, disk I/O darboğazına işaret edebilir.st(steal): Sanallaştırılmış ortamlarda (örneğin KVM, Xen), başka bir sanal makinenin aynı fiziksel CPU çekirdeğini kullanması nedeniyle CPU'nun beklemek zorunda kaldığı süre. Yüksekst, hypervisor üzerinde kaynak çekişmesini gösterir.
vmstat: Bellek, takas (swap), disk I/O ve CPU aktivitelerini özetleyen bir araçtır.
vmstat 1 5Bu komut, her saniye 5 kez olmak üzere CPU kullanımını (us, sy, id, wa, st sütunları altında) gösterir.
sar (System Activity Reporter): Geçmişe dönük sistem aktivite verilerini toplar ve raporlar. Uzun dönemli trend analizi için çok değerlidir.
sar -u 5 5Bu komut, 5 saniyelik aralıklarla 5 kez CPU kullanım istatistiklerini raporlar.
Gerçek Senaryo: Yüksek CPU Kullanımı ve Tespiti
Bir e-ticaret uygulamasının arka uç sunucusunda, yoğun saatlerde işlemci kullanımının %95'in üzerine çıktığı ve yanıt sürelerinin uzadığı şikayeti geldi. top komutu ile anlık izlemede, belirli bir Java uygulamasının us değerini sürekli yüksek tuttuğu görüldü. strace -p <PID> ve jstack <PID> (Java uygulaması için) kullanarak, uygulamanın kritik bir veritabanı sorgusunda kilitlendiği veya yoğun döngülerde takıldığı tespit edildi. Sorunun kökü, yetersiz indekslenmiş bir veritabanı tablosu ve aynı anda çok fazla paralel isteği işleyen, optimize edilmemiş uygulama kodu çıktı. Bu durum, sadece top ile yüksek CPU'yu görmekle kalmayıp, o CPU'yu kimin tükettiğini ve neden tükettiğini anlamak için derinlemesine analiz gerektirdi.
Bellek (RAM) Performans Analizi: Sızıntıları ve Yavaşlamaları Engelleme
Bellek darboğazları, genellikle sistemin disk takas alanını (swap) yoğun bir şekilde kullanmasına, uygulama performansında düşüşlere ve hatta Out Of Memory (OOM) hatalarına yol açar. Yeterli fiziksel belleğe sahip olmak, hızlı ve kararlı bir sistem için kritik öneme sahiptir.
Temel RAM Metrikleri ve Araçlar
free -h: Sistemdeki toplam, kullanılan ve boş bellek miktarını, ayrıca takas alanının durumunu insan tarafından okunabilir formatta gösterir.
free -hÇıktıda dikkat edilmesi gerekenler:
total: Toplam fiziksel bellek.used: Kullanılan bellek.free: Serbest bellek.buff/cache: Çekirdek tarafından disk I/O'sunu hızlandırmak için kullanılan bellek. Bu bellek, ihtiyaç duyulduğunda uygulamalar tarafından kullanılabilir, bu nedenleusedolarak görünse de gerçekte