Linux Performans Ayarı: CPU, RAM ve I/O Derinlemesine Analiz

 · 

Linux Performans Ayarı: CPU, RAM ve I/O Derinlemesine Analiz

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.

top

top çı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üksek wa değ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üksek st, hypervisor üzerinde kaynak çekişmesini gösterir.

vmstat: Bellek, takas (swap), disk I/O ve CPU aktivitelerini özetleyen bir araçtır.

vmstat 1 5

Bu 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 5

Bu 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 nedenle used olarak görünse de gerçekte
← Blog Listesine Dön