perf ve eBPF ile performans analizi
perf ile örnekleme ve alev grafikleri çıkarır, bpftrace ve BCC araçlarıyla çekirdeğin ve uygulamanın içini canlı izler, sorunu tahminle değil kanıtla bulursun.
Seviye 401 · 17 ders · 15 pratik lab
Dersler
perf
- perf stat: donanım sayaçları
- perf record ve report ile örnekleme
- Alev grafikleri: zaman nereye gidiyor
- Semboller, yığın çözme ve çerçeve işaretçileri
- Kısa görev: işlemciyi yakan fonksiyonu alev grafiğinde bul
eBPF temelleri
- eBPF nedir: çekirdekte güvenle çalışan küçük programlar
- BCC araçları: execsnoop, opensnoop, biolatency
- bpftrace tek satırlıkları
- İzleme noktaları: tracepoint, kprobe ve uprobe
- Kısa görev: sunucuyu yoran kısa ömürlü süreçleri yakala
Gecikme analizi
- İşlemci dışı zaman: beklemeyi ölçmek
- Disk gecikmesi histogramları
- Zamanlayıcı gecikmesi: runqlat
- Kendi bpftrace betiğini yazmak
- Kısa görev: p99 gecikme sıçramasının nedenini bul
Kapanış
- Üretimde izleme: ek yük ve güvenlik
- Bitirme görevi: yavaşlayan API sunucusunda kök nedeni kanıtla
Pratik lablar
- perf top ile en sıcak işlevi bul: İşlemciyi tüketen süreçte en çok örnek alan işlevin adını cevap olarak gir.
- Çağrı yığınlı profil kaydet ve yorumla: Servisi otuz saniye çağrı yığınlarıyla örnekle ve zamanın çoğunu harcayan çağrı zincirini rapordan çıkar.
- Alev grafiğiyle iki sürümü karşılaştır: Eski ve yeni sürümün profillerinden alev grafiği üret, fark grafiğiyle yavaşlamayı getiren işlevi belirle.
- Kısa ömürlü süreçleri yakala: execsnoop ile saniyede onlarca kez başlatılan kısa ömürlü komutu ve onu başlatan üst süreci bul.
- Başarısız dosya açma denemelerini izle: opensnoop ile hata dönen açma çağrılarını süz ve servisin sürekli aradığı eksik dosyanın yolunu belirle.
- bpftrace ile kendi sayacını yaz: Süreç adına göre sistem çağrısı sayan ve yazma boyutlarının dağılımını gösteren tek satırlık betikleri yaz ve çıktıyı yorumla.
- Disk gecikme dağılımını ölç: biolatency ile blok G/Ç gecikme dağılımını çıkar ve en kalabalık aralığı cevap olarak gir.
- Zamanlayıcı gecikmesini ve işlemci dışı süreyi ölç: runqlat ile çalışma kuyruğu beklemesini ölç ve işlemci dışı profil ile servisin neyi beklediğini bul.
- Kuyruk gecikmesinin kaynağını katmanlar arasında bul: Yüzde doksan dokuzluk dilimdeki yavaş istekleri dosya sistemi, blok ve zamanlayıcı araçlarıyla izleyip gecikmenin hangi katmanda oluştuğunu kanıtla.
- Giden TCP bağlantılarını süreç bazında izle: tcpconnect ile hangi sürecin hangi adres ve porta bağlandığını listele ve beklenmeyen hedefi işaretle.
- Yeniden iletimleri ve bağlantı ömrünü ölç: tcpretrans ve tcplife ile yeniden iletim yaşayan hedefi ve kısa ömürlü bağlantı açan servisi belirle.
- Ad çözümleme gecikmesini kendi izleyicinle yakala: Çözümleme işlevine giriş ve dönüş yoklaması koyan bpftrace betiğiyle gecikme dağılımını çıkar ve yavaş sorguları üreten süreci bul.
- İzleme aracının yükünü ölç: Aynı iş yükünü izleme kapalı ve açıkken çalıştır ve aracın getirdiği yavaşlamayı yüzdeyle raporla.
- Eksik sembol ve kırık yığınları düzelt: Yalnızca adres gösteren profilin nedenini bul; hata ayıklama sembollerini ve yığın açma yöntemini ayarlayıp okunur yığın elde et.
- Bilinmeyen yavaşlığı araçlarla uçtan uca çöz: Hazır senaryodaki yavaş servisi perf ve eBPF araçlarıyla incele; kök nedeni üç bağımsız ölçümle kanıtla ve düzeltmenin etkisini göster.
Kurs hakkında
perf ile örnekleme ve alev grafikleri çıkarır, bpftrace ve BCC araçlarıyla çekirdeğin ve uygulamanın içini canlı izler, sorunu tahminle değil kanıtla bulursun.
Ne öğreneceksin
- perf
- eBPF temelleri
- Gecikme analizi
- Kapanış
Ön koşullar
Aynı yolun 301 düzeyine kadar olan konularını uygulamış olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 401 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.