Celil Uyanikoglu

Linux Performans İzleme ve Optimizasyon Rehberi

Celil Uyanikoglu Celil Uyanikoglu · 26 Nis 2026 · 6 dk okuma

Linux sunucularda performans sorunları kaçınılmazdır. Yavaşlayan sistem, yüksek CPU kullanımı, bellek tükenmesi gibi durumlarla karşılaştığınızda doğru araçları kullanarak sorunu tespit etmek gerekir. Bu rehberde performans izleme araçlarını ve optimizasyon tekniklerini ele alacağız.

Performans İzleme Temelleri

Linux'ta performans izleme dört ana kaynağı kapsar:

CPU: İşlemci kullanımı ve yük durumu Bellek: RAM kullanımı ve swap aktivitesi Disk I/O: Okuma/yazma hızları ve bekleme süreleri Ağ: Bant genişliği ve bağlantı durumu

Sorun giderme metodolojisi USE (Utilization, Saturation, Errors) yöntemine dayanır: Kullanım oranı, doygunluk ve hatalar kontrol edilir.

CPU İzleme

top Komutu

En temel performans izleme aracı. Gerçek zamanlı sistem durumu gösterir.

top

Üst bölümde:

  • load average: 1, 5, 15 dakikalık yük ortalaması
  • %Cpu(s): CPU kullanım dağılımı
  • us: Kullanıcı işlemleri
  • sy: Sistem işlemleri
  • id: Boşta
  • wa: I/O beklemesi

top İçi Tuşlar

P: CPU kullanımına göre sırala M: Bellek kullanımına göre sırala k: Süreç sonlandır 1: Her CPU çekirdeğini ayrı göster q: Çık

htop

top'un gelişmiş versiyonu. Renkli arayüz, fare desteği.

sudo apt install htop htop

Süreçleri seçip F9 ile sonlandırabilirsiniz. Ağaç görünümü için F5 tuşunu kullanın.

Load Average Yorumlama

load average: 2.50, 1.80, 1.20

Değerler 1, 5, 15 dakikalık ortalamalarıdır. Çekirdek sayısına göre yorumlanır:

4 çekirdekli sistemde 4.00 = %100 kullanım 4 çekirdekli sistemde 8.00 = %200 kullanım (darboğaz)

Genel kural: Load average çekirdek sayısını geçmemeli.

mpstat

CPU çekirdeklerini ayrı ayrı izler:

sudo apt install sysstat mpstat -P ALL 2

Her 2 saniyede tüm çekirdeklerin durumunu gösterir.

Bellek İzleme

free Komutu

Bellek kullanımını gösterir:

free -h

-h: İnsan okunabilir format

Çıktı:

  • total: Toplam RAM
  • used: Kullanılan
  • free: Tamamen boş
  • buff/cache: Önbellek için kullanılan
  • available: Uygulamalar için kullanılabilir

available değeri önemlidir. free düşük olsa bile available yeterliyse sorun yoktur.

vmstat

Bellek, swap, CPU, I/O durumunu gösterir:

vmstat 2 5

Her 2 saniyede bir, 5 kez çıktı verir.

Önemli sütunlar:

  • si (swap in): Swap'tan RAM'e
  • so (swap out): RAM'den swap'a
  • wa: I/O bekleme

si/so sürekli yüksekse sistem swap yapıyor demektir.

Swap Kullanımını İzleme

swapon -s cat /proc/swaps

Bellek tüketen süreçler:

ps aux --sort=-%mem | head -10

Disk I/O İzleme

iostat

Disk okuma/yazma istatistikleri:

iostat -xz 2

Önemli metrikler:

  • %util: Disk kullanım yüzdesi (100'e yakınsa disk doymuş)
  • await: Ortalama bekleme süresi (ms)
  • r/s, w/s: Saniyedeki okuma/yazma sayısı

iotop

Hangi süreç disk kullanıyor:

sudo apt install iotop sudo iotop

Disk yazan süreçleri gerçek zamanlı gösterir.

df ve du

Disk doluluk kontrolü:

df -h

Dizin boyutları:

du -sh /var/*

En büyük dosyaları bulma:

find /var -type f -exec du -h {} + | sort -rh | head -20

Ağ İzleme

iftop

Ağ trafiğini gerçek zamanlı izler:

sudo apt install iftop sudo iftop

nethogs

Hangi süreç bant genişliği kullanıyor:

sudo apt install nethogs sudo nethogs

ss ve netstat

Açık bağlantılar:

ss -tuln

-t: TCP -u: UDP -l: Dinlenen portlar -n: Sayısal gösterim

Bağlantı sayıları:

ss -s

sar (System Activity Reporter)

Geçmiş performans verileri toplar ve raporlar. Uzun vadeli analiz için vazgeçilmezdir.

Kurulum

sudo apt install sysstat

/etc/default/sysstat dosyasında ENABLED="true" yapın.

Temel Kullanım

CPU geçmişi:

sar -u

Bellek geçmişi:

sar -r

Disk I/O geçmişi:

sar -d

Ağ istatistikleri:

sar -n DEV

Belirli tarih:

sar -u -f /var/log/sysstat/sa20

dstat

Tüm metrikleri tek ekranda gösterir:

sudo apt install dstat dstat

CPU, disk, ağ, bellek aynı anda izlenir.

Performans Optimizasyonu

Swappiness Ayarı

Swappiness, sistemin ne kadar agresif swap kullanacağını belirler. 0-100 arası değer alır. Varsayılan genellikle 60'tır.

Mevcut değer:

cat /proc/sys/vm/swappiness

Düşük swappiness (10-20): RAM'de tutmayı tercih eder, swap'ı azaltır. RAM'i bol sistemler için.

Yüksek swappiness (60-80): Swap'ı daha çok kullanır. Az RAM'li sistemler için.

Veritabanı sunucularında swappiness=10 önerilir.

Geçici değişiklik:

sudo sysctl vm.swappiness=10

Kalıcı değişiklik (/etc/sysctl.conf):

vm.swappiness = 10

Uygula:

sudo sysctl -p

VFS Cache Pressure

Dizin ve inode önbellek tutma eğilimini kontrol eder. Varsayılan 100.

Düşük değer (50): Önbelleği daha uzun tutar, dosya sistemi erişimini hızlandırır.

Ayarlama:

vm.vfs_cache_pressure = 50

I/O Scheduler

Disk I/O zamanlayıcı seçimi:

cat /sys/block/sda/queue/scheduler

SSD'ler için none veya mq-deadline önerilir. HDD'ler için bfq performans sağlar.

Değiştirme:

echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler

Dosya Sistemi Optimizasyonu

noatime mount seçeneği:

Dosya erişim zamanı yazımını kapatır, I/O azaltır.

/etc/fstab'da:

UUID=xxx /home ext4 defaults,noatime 0 2

Bellek Optimizasyonu

Önbelleği temizleme (test amaçlı):

sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

Dikkat: Production'da rutin olarak yapmayın.

Huge Pages

Veritabanları için büyük bellek sayfaları:

cat /proc/meminfo | grep Huge

CPU Optimizasyonu

CPU Governor

Performans veya güç tasarrufu modu:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Performans modu:

echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Pratik Senaryolar

Yavaş Sunucu Teşhisi

top ile genel duruma bak Load average yüksekse CPU darboğazı wa yüksekse disk I/O sorunu vmstat ile swap aktivitesi kontrol iostat ile disk doygunluğu kontrol Sorunlu süreci tespit et ve önlem al

Bellek Tükenmesi

free -h ile kullanımı kontrol ps aux --sort=-%mem | head ile suçluyu bul Gereksiz servisleri durdur Swappiness'i ayarla Gerekirse RAM ekle

Disk Darboğazı

iostat -xz 2 ile %util kontrol iotop ile yazan süreci bul Log rotation kontrol Eski dosyaları temizle SSD'ye geçiş düşün

İzleme Araçları

Basit izleme için htop, iotop, iftop yeterlidir.

Uzun vadeli analiz için:

  • sar ve sysstat paketi
  • Prometheus + Grafana
  • Netdata (kurulumu kolay, görsel arayüz)

Netdata kurulumu:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

Tarayıcıdan http://sunucu:19999 adresinde izleme paneli açılır.

Sonuç

Linux performans izleme sistematik bir yaklaşım gerektirir. top, vmstat, iostat üçlüsü temel araçlardır. Sorun tespiti için USE metodunu uygulayın: Kullanım, doygunluk, hatalar.

Optimizasyon için swappiness, cache pressure ve I/O scheduler ayarlarını iş yüküne göre yapın. Veritabanı sunucularında düşük swappiness, SSD'lerde uygun scheduler performansı artırır.

Düzenli izleme alışkanlığı edinin. Sorun çıkmadan önce eğilimleri görmek, kriz anında koşturmaktan iyidir.

0 Yorum

Yorum Yaz