Bulut Sunucuda Kaynak İzleme ve Optimizasyon

Bulut Sunucuda Kaynak İzleme ve Optimizasyon

Bulut sunucunuzun CPU, RAM, disk ve ağ kaynaklarını nasıl izler ve optimize edersiniz? Prometheus, Grafana ve pratik komutlarla rehber.

E

Elif Demir

Cloud Solutions Architect

20 Mart 202614 dk okuma0

Bulut sunucunuzun CPU'su %95'te takılı kalıyor ama hangi sürecin buna neden olduğunu bilmiyor musunuz? Ya da RAM tükeniyor ve OOM Killer rastgele servisleri öldürüyor mu? Bulut sunucu kaynak izleme, performans sorunlarını reaktif değil proaktif şekilde çözmenin temelidir. Bu rehberde Linux komut satırı araçlarıyla CPU, RAM, disk I/O ve ağ trafiğini nasıl izleyeceğinizi, darboğazları nasıl tespit edeceğinizi ve somut optimizasyon adımlarını ele alıyoruz.

Kaynak İzleme Neden Kritik?

Kaynak izleme yapmadan sunucu yönetmek, gösterge paneli olmayan bir araç sürmek gibidir. Sorunları ancak çöktüğünde fark edersiniz. Düzenli izleme ile:

  • Kapasite planlaması yapabilirsiniz Kaynak tüketim trendlerini izleyerek ne zaman ölçekleme yapmanız gerektiğini önceden belirlersiniz.
  • Performans darboğazlarını hızla tespit edersiniz Yavaşlığın CPU mu, RAM mi, disk I/O mu yoksa ağ mı kaynaklı olduğunu dakikalar içinde anlarsınız.
  • Maliyet optimizasyonu sağlarsınız Gereğinden fazla kaynak tahsis etmek para israfıdır. Gerçek kullanım verilerine göre doğru boyutta bulut sunucu seçebilirsiniz.

CPU Kullanımını İzleme ve Optimize Etme

htop ile Anlık CPU İzleme

htop, top komutunun gelişmiş ve renkli bir alternatifidir. Her CPU çekirdeğinin kullanımını ayrı ayrı gösterir, süreçleri CPU veya RAM'e göre sıralayabilir ve doğrudan süreç sonlandırabilirsiniz.

terminal - htop kurulum ve kullanım
# htop kurulumu (Ubuntu/Debian)
sudo apt install htop -y

# Çalıştırma
htop

# Belirli bir kullanıcının süreçlerini filtreleme
htop -u www-data

# CPU kullanımına göre sıralama: htop içinde F6 → PERCENT_CPU

mpstat ile Çekirdek Bazlı Analiz

mpstat (sysstat paketinin parçası), her CPU çekirdeğinin kullanım dağılımını gösterir. Tek çekirdekte yoğunlaşan iş yükleri (single-threaded uygulamalar) için kritik bir araçtır.

terminal - mpstat
# sysstat kurulumu
sudo apt install sysstat -y

# Tüm çekirdeklerin kullanımını 2 saniye aralıkla göster
mpstat -P ALL 2

# Dikkat edilecek metrikler:
# %usr  → Kullanıcı alanı CPU (uygulamalarınız)
# %sys  → Kernel alanı CPU (sistem çağrıları)
# %iowait → Disk I/O bekleyen CPU (yüksekse disk darboğazı)
# %idle → Boşta CPU (düşükse kapasite sınırında)

💡 İpucu: %iowait değeri sürekli %20'nin üzerindeyse, CPU sorunu değil disk I/O darboğazı yaşıyorsunuz demektir. Bu durumda NVMe SSD'ye geçiş veya disk I/O optimizasyonu öncelikli olmalıdır.

RAM Kullanımını İzleme ve Optimize Etme

free ve vmstat ile Bellek Analizi

free -h komutu anlık bellek durumunu gösterir. Ancak Linux'ta "used" değeri yanıltıcı olabilir çünkü çekirdek boş RAM'i disk önbelleği (buffer/cache) olarak kullanır. Gerçek kullanılabilir bellek için "available" sütununa bakın.

terminal - bellek izleme
# Anlık bellek durumu
free -h

# Örnek çıktı:
#               total   used   free   shared  buff/cache  available
# Mem:          4.0Gi   2.1Gi  0.3Gi  128Mi   1.6Gi       1.5Gi
# Swap:         2.0Gi   0.5Gi  1.5Gi

# vmstat ile 5 saniye aralıkla bellek ve swap izleme
vmstat 5

# Dikkat: si (swap in) ve so (swap out) değerleri
# sürekli sıfırdan büyükse, RAM yetersiz demektir

RAM Optimizasyon Adımları

RAM tüketimini azaltmak için şu adımları uygulayın:

1. MySQL/MariaDB buffer pool boyutunu ayarlayın: innodb_buffer_pool_size değerini toplam RAM'in %50-70'i olarak ayarlayın. 4 GB RAM'li bir sunucuda 2-2.5 GB ideal bir başlangıçtır.

2. PHP-FPM worker sayısını sınırlayın: Her PHP-FPM worker ortalama 30-50 MB RAM tüketir. 4 GB RAM'de pm.max_children değerini 20-30 arasında tutun.

3. Kullanılmayan servisleri kapatın: systemctl list-units --type=service --state=running ile çalışan servisleri listeleyin ve gereksiz olanları devre dışı bırakın.

RAM yetersizliğinde SWAP alanı yapılandırması da kritik bir adımdır. Bu konuda VPS'te SWAP Alanı Yapılandırması rehberimizi inceleyebilirsiniz.

Disk I/O İzleme ve Darboğaz Tespiti

Disk I/O darboğazı, özellikle veritabanı yoğun uygulamalarda en sık karşılaşılan performans sorunudur. iostat ve iotop araçlarıyla disk performansını izleyebilirsiniz.

terminal - disk I/O izleme
# iostat ile disk performansı (2 saniye aralıkla)
iostat -xz 2

# Kritik metrikler:
# await  → Ortalama I/O bekleme süresi (ms). NVMe'de <1ms, SSD'de <5ms olmalı
# %util  → Disk meşguliyet oranı. %80+ ise darboğaz var
# r/s, w/s → Saniyedeki okuma/yazma işlemi sayısı

# Hangi sürecin en çok disk I/O yaptığını görmek için
sudo iotop -oP

⚠️ Önemli Uyarı: iostat çıktısında await değeri sürekli 10 ms'nin üzerindeyse ve HDD kullanıyorsanız, NVMe SSD'ye geçiş en etkili optimizasyon olacaktır. Yazılımsal optimizasyonlar disk donanımının fiziksel limitlerini aşamaz.

Ağ Trafiğini İzleme

Ağ performansı, özellikle API sunucuları ve medya servisleri için kritiktir. nload ve ss komutlarıyla anlık bant genişliği kullanımını ve bağlantı durumlarını izleyebilirsiniz.

terminal - ağ izleme
# Anlık bant genişliği kullanımı
sudo apt install nload -y
nload eth0

# Aktif bağlantı sayısı ve durumları
ss -s

# En çok bağlantı kuran IP'leri bulmak
ss -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20

# Bağlantı durumu dağılımı (TIME_WAIT, ESTABLISHED vb.)
ss -ant | awk '{print $1}' | sort | uniq -c | sort -rn

Ağ optimizasyonu hakkında daha detaylı bilgi için VPS'te Ağ Performansını Artırma rehberimize göz atabilirsiniz.

İzleme Araçları Karşılaştırması

Araç İzlediği Kaynak Kullanım Alanı Kurulum
htop CPU, RAM, süreçler Anlık süreç izleme ve yönetim apt install htop
vmstat RAM, swap, CPU, I/O Bellek ve swap aktivitesi izleme Varsayılan kurulu
iostat Disk I/O Disk performansı ve darboğaz tespiti apt install sysstat
iotop Disk I/O (süreç bazlı) Hangi sürecin disk kullandığını bulma apt install iotop
nload Ağ bant genişliği Anlık gelen/giden trafik izleme apt install nload
mpstat CPU (çekirdek bazlı) Çekirdek bazlı CPU dağılımı apt install sysstat
Prometheus + Grafana Tümü (zaman serisi) Uzun vadeli izleme, dashboard, uyarılar Ayrı kurulum gerekir

Otomatik Uyarı ve İzleme Kurulumu

Komut satırı araçları anlık izleme için mükemmeldir, ancak 7/24 izleme için otomatik uyarı sistemi kurmanız gerekir. Basit bir bash script ile kritik eşikleri izleyebilirsiniz:

monitor-alert.sh
#!/bin/bash
# Basit kaynak izleme ve uyarı scripti

CPU_THRESHOLD=85
RAM_THRESHOLD=90
DISK_THRESHOLD=85

# CPU kontrolü
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print 100 - $8}' | cut -d. -f1)
if [ $CPU_USAGE -gt $CPU_THRESHOLD ]; then
  echo "UYARI: CPU kullanımı %${CPU_USAGE}" | mail -s "Sunucu Uyarı" [email protected]
fi

# RAM kontrolü
RAM_USAGE=$(free | awk '/Mem/{printf("%.0f"), $3/$2*100}')
if [ $RAM_USAGE -gt $RAM_THRESHOLD ]; then
  echo "UYARI: RAM kullanımı %${RAM_USAGE}" | mail -s "Sunucu Uyarı" [email protected]
fi

# Disk kontrolü
DISK_USAGE=$(df / | tail -1 | awk '{print $5}' | tr -d '%')
if [ $DISK_USAGE -gt $DISK_THRESHOLD ]; then
  echo "UYARI: Disk kullanımı %${DISK_USAGE}" | mail -s "Sunucu Uyarı" [email protected]
fi

Bu scripti cron ile her 5 dakikada bir çalıştırabilirsiniz: */5 * * * * /opt/scripts/monitor-alert.sh. Daha kapsamlı izleme için Prometheus ve Grafana kombinasyonunu değerlendirin.

Sıkça Sorulan Sorular

Sunucum yavaş ama CPU ve RAM normal görünüyor, sorun ne olabilir?

Büyük olasılıkla disk I/O darboğazı yaşıyorsunuz. iostat -xz 2 ile await ve %util değerlerini kontrol edin. Ayrıca vmstat 2 çıktısında wa (I/O wait) sütununa bakın.

free komutunda RAM'in tamamı kullanılmış görünüyor, panik yapmalı mıyım?

Hayır. Linux çekirdeği boş RAM'i disk önbelleği olarak kullanır ve bu "used" olarak görünür. Gerçek kullanılabilir bellek için available sütununa bakın. Bu değer düşükse (toplam RAM'in %10'unun altında) o zaman RAM artırımı düşünmelisiniz.

Hangi izleme aracını kurmalıyım?

Tek sunucu yönetiyorsanız htop + sysstat (iostat, mpstat, sar) yeterlidir. Birden fazla sunucu veya uzun vadeli trend analizi için Prometheus + Grafana stack'ini kurun.

OOM Killer nedir ve nasıl önlenir?

OOM (Out of Memory) Killer, Linux çekirdeğinin RAM tamamen tükendiğinde en çok bellek kullanan süreci zorla sonlandırma mekanizmasıdır. Önlemek için: yeterli SWAP alanı ayarlayın, uygulama bellek limitlerini yapılandırın ve RAM kullanımını düzenli izleyin.

Sonuç

Bulut sunucunuzda kaynak izleme, performans sorunlarını çözmek kadar onları önlemek için de kritiktir. htop ile süreçleri, iostat ile disk performansını, vmstat ile bellek durumunu düzenli izleyin. Eşik değerlerini aşan metriklerde otomatik uyarı kurarak reaktif değil proaktif bir yönetim anlayışı benimseyin.

Yüksek Performanslı Bulut Sunucu mu Arıyorsunuz?

Hosted Cloud'un NVMe SSD destekli bulut sunucuları ile düşük latency ve yüksek I/O performansı elde edin. Kaynak izleme araçlarınız hep yeşil kalsın.

Bulut Sunucu Planlarını İncele →
E

Elif Demir

Cloud Solutions Architect

Kurumsal bulut geçiş projeleri ve hibrit altyapı tasarımı konusunda uzman. AWS, Azure ve özel bulut ortamlarında 8 yıllık deneyime sahiptir.

Yorumlar yakında