Linux sar Komutu: Kurulum, Etkinleştirme ve İleri Düzey Kullanım

Sar komutu nedir.

sar (System Activity Reporter), sysstat paketinin parçası olan, CPU, bellek, I/O, ağ, sayfa hataları, yük ortalaması, IRQ gibi pek çok metriği canlı (gerçek zamanlı) veya geçmişten (arşivden) raporlayan bir performans gözlem aracıdır.

Veriyi sadc toplayıcı bileşeni belirli aralıklarla /var/log/sa/ altındaki ikili günlük dosyalarına (saXX, sarXX) yazar; sar bu dosyaları okuyup özetler.

Kurulum ve veri toplamayı etkinleştirme

Debian/Ubuntu

sudo apt update
sudo apt install sysstat -y
# Veri toplamayı aç
sudo sed -i 's/^ENABLED="false"/ENABLED="true"/' /etc/default/sysstat
# Hizmeti devreye al
sudo systemctl enable --now sysstat
# (Bazı sürümlerde cron kullanılır) cron job kontrolü:
cat /etc/cron.d/sysstat

RHEL/CentOS/AlmaLinux/Rocky

sudo dnf install -y sysstat   # eski sürümlerde: sudo yum install -y sysstat
sudo systemctl enable --now sysstat
# systemd timer/cron işlerini doğrula:
systemctl list-timers | grep sysstat || cat /etc/cron.d/sysstat

Notlar

  • /var/log/sa/: Günlükler burada tutulur. Örnekler: sa10 (ikili veri), sar10 (metin rapor, varsa).
  • Varsayılan toplama aralığı genellikle 10 dk’dır (dağıtıma göre değişebilir).
  • Toplama aralığını artırmak/azaltmak için ilgili cron/systemd timer ayarını düzenleyin.

Kullanım kalıpları

1. Canlı izleme (ad-hoc)

sar <örnekleme_aralığı_saniye> <tekrar_sayısı> [SEÇENEKLER]

Örnek:

sar -u 1 5          # 1 sn aralıkla 5 örnek CPU kullanım yüzdeleri
sar -r 2 10         # RAM/swap 2 sn aralıkla 10 kez
sar -n DEV 1 3      # Ağ arayüz istatistikleri

2. Geçmişten okuma (arşiv)

Bugünün verisi:

Örn:

sar -u # varsayılan olarak bugünün saXX dosyasını okur

Belirli gün/dosya:

sar -f /var/log/sa/sa10 -u
sar -f /var/log/sa/sa10 -s 09:00:00 -e 12:00:00 -i 60

-s başlangıç, -e bitiş saati, -i örnekleme çözünürlüğünü (saniye) belirler (raporlama çözünürlüğü; arşivdeki ham toplama aralığını büyütmez).

Sık kullanılan başlıklar (metrik grupları) ve bayraklar

BayrakAnlamı/Kapsamı (özet)
-uCPU kullanım yüzdeleri (user, system, iowait, steal, idle)
-P ALL veya -P <cpu_id>CPU başına ayrıntı
-qKoşu kuyruğu / yük ortalaması / bağlam değiştirme
-rBellek kullanımı (kbmemfree, kbmemused, memused%)
-SSwap göstergeleri
-BSayfalama/numa (pgpgin/pgpgout, majflt/s vb.)
-WSwap-in/Swap-out oranları
-dBlok I/O cihaz istatistikleri
-p-d ile birlikte, cihaz adları yerine /dev/sda benzeri isimleri göster
-n DEVAğ aygıtı seviyesinde RX/TX paket/byte/drop/err
-n TCP,UDP,IP,EDEVProtokol seviyesinde hatalar ve istatistikler
-A“Hepsi”ne yakın kapsamlı bir özet (çok gürültülü olabilir)
-f <dosya>Belirli arşiv dosyası
-s <hh:mm[:ss]> / -e <hh:mm[:ss]>Zaman penceresi
-i <sn>Rapor satır aralığı (downsample)
-Hİnsan okunur birimler (bazı derlemelerde)
-o <dosya>İkili çıktı üret (başka sisteme taşıma/analiz için)

Pratik örnekler ve yorumlama

CPU darboğazı avı

# Canlı
sar -u 1 10
sar -P ALL 1 10
# Geçmiş (sabah 9-12 arası, 1 dakikalık rapor satırı)
sar -f /var/log/sa/sa10 -u -s 09:00 -e 12:00 -i 60

Yorum: idle düşük, iowait yüksekse CPU değil disk I/O bekleniyor olabilir; steal yüksekse sanallaştırma katmanında CPU rekabeti yaşanır.

Bellek baskısı / swap davranışı

sar -r 1 5
sar -S 1 5
sar -W 1 5

Yorum: kbmemfree sürekli düşüyor ve -W ile swap-in/out artıyorsa RAM baskısı var; uygulama ayarı veya kapasite planı gerekir.

Disk I/O kuyruk/latency sinyali

sar -d -p 1 5

Yorum: Sürücü bazında tps, rkB/s, wkB/s, await (bazı sürümlerde farklı sütun adları) ile gecikmeler izlenir; await yükseliyorsa disk darboğazı olabilir.

Ağ’ın sağlık kontrolü

sar -n DEV 1 5
sar -n TCP,UDP,IP 1 5

Yorum: rxerr/s, txerr/s, rxdrop/s gibi sütunlar paket kaybı ve sürücü/MTU sorunlarına işaret eder.

Sistem genel fotoğrafı (gürültülü ama hızlı)

sar -A 1 3

Arşiv rotasyonu ve veri dosyaları

  • İkili günlükler: /var/log/sa/saDD (gün numarası)
  • Metin raporlar (opsiyonel): /var/log/sa/sarDD
  • Rotasyon periyodu ve saklama süresi cron veya systemd timer tarafından yönetilir. Saklama süresini artırmak için ilgili job’daki -S saklama gün sayısını (dağıtıma göre) veya günlük rotasyon ayarlarını değiştirin.

Performans etkisi ve en iyi uygulamalar

  • sadc’nin sistem yükü çok düşüktür (tipik olarak < %1 CPU, az I/O).
  • Toplama aralığını gereksiz yere çok küçültmeyin (örn. 1 dk çoğu sunucu için yeterlidir).
  • Canlı teşhiste sar yerine pidstat, iostat, mpstat (hepsi sysstat içinde) ile süreç/disk/CPU ayrıntısını derinleştirin.
  • Üretimde tarih/zaman penceresiyle çalışın (-s/-e), raporlarınız tekrarlanabilir olur.

Hızlı “cheat-sheet”

# Kurulum + etkinleştirme (Ubuntu)
sudo apt install -y sysstat
sudo sed -i 's/ENABLED="false"/ENABLED="true"/' /etc/default/sysstat
sudo systemctl enable --now sysstat

# CPU (toplam ve çekirdek başı)
sar -u 1 5
sar -P ALL 1 5

# Bellek & swap
sar -r 1 5
sar -S 1 5
sar -W 1 5

# Disk I/O
sar -d -p 1 5

# Ağ
sar -n DEV 1 5
sar -n TCP,UDP,IP 1 5

# Geçmiş dosyadan, belirli pencere
sar -f /var/log/sa/sa10 -u -s 10:00 -e 12:00 -i 60