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
Bayrak | Anlamı/Kapsamı (özet) |
---|---|
-u | CPU kullanım yüzdeleri (user, system, iowait, steal, idle) |
-P ALL veya -P <cpu_id> | CPU başına ayrıntı |
-q | Koşu kuyruğu / yük ortalaması / bağlam değiştirme |
-r | Bellek kullanımı (kbmemfree, kbmemused, memused%) |
-S | Swap göstergeleri |
-B | Sayfalama/numa (pgpgin/pgpgout, majflt/s vb.) |
-W | Swap-in/Swap-out oranları |
-d | Blok I/O cihaz istatistikleri |
-p | -d ile birlikte, cihaz adları yerine /dev/sda benzeri isimleri göster |
-n DEV | Ağ aygıtı seviyesinde RX/TX paket/byte/drop/err |
-n TCP,UDP,IP,EDEV | Protokol 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