Autor del tema #1
perf stat ile Performans Sayaçları

Bir Linux sisteminde uygulama veya çekirdek performansını ölçmeye başladığınızda, ilk akla gelen araç perf stat olur. Bu araç, CPU döngüleri, talimat sayısı, context switch gibi temel performans olaylarını toplu halde raporlar ve hangi kod parçalarının darboğaz oluşturduğunu anlamanıza yardımcı olur. Aşağıda, temel kullanımları ve pratik ipuçlarını adım adım ele alıyorum.

İlk adım: neyi ölçmek istiyorsunuz
  • perf stat komutu temel olarak olay kümesini toplar. En sık kullanılanlar:
  • cycles: toplam dönüştürülen CPU saatleri
  • instructions: yürütülen talimat sayısı
  • cache-references ve cache-misses: önbellek erişim ve hataları
  • branches ve branch-mes: dallanma sayısı ve hatalı dallanma
  • Hangi olayların uygulanabilir olduğu işlemci mimarisine bağlıdır. Intel ve AMD için yaygın olaylar benzer olsa da bazı özel olaylar farklılık gösterebilir.


İlk komutlar ve örnekler
  • Basit bir ölçüm: bir komutun toplam performansını görmek

perf stat echo "hello world" 2>&1 | tail -n +2
Bu yaklaşım, komutun akışını doğrudan ölçmez; daha faydalı olanı, ölçümü doğrudan çalıştırmaktır:
perf stat -e cycles,instructions,cache-references,cache-misses ls -l
  • Süreç bazlı ölçüm: belirli bir süreç için

perf stat -p sleep 1
veya belirli bir uygulama başlatıp ölçüm:
perf stat -e cycles -p $(pidof myapp)

Gelişmiş kullanımlar: olay setlerini özelleştirmek
  • Belirli olayları seçmek için -e bayrağı kullanın:

perf stat -e cycles,uops_retired.any,cache-misses -p 2>&1 | tee perf.log
  • Farklı süreler için karşılaştırma:

perf stat -e cycles -p sleep 0.5; perf stat -e cycles -p sleep 1
Bu tür karşılaştırmalar, zaman içindeki dalgalanmaları görmenize olanak tanır.

Sonuçları yorumlamak
  • cycles ve instructions arasındaki oran, IPC (instructions per cycle) yani talimat başına düşen CPU verimliliğini gösterir. Yüksek cycles ve düşük instructions, beklenen darboğazlar olmadan çalışmanın mümkün olamayacağını işaret edebilir.
  • cache-misses ile bellek sistemi baskısını, branch-misses ile dallanma etkisini analiz edebilirsiniz. Özellikle NVMe veya memory-intensive iş yüklerinde bu metrikler yol göstericidir.
  • Bottleneck’ları belirlemek için perf stat ile birlikte perf sched veya perf top gibi araçlar kullanışlıdır; CPU kullanımını çekirdek bazında karşılaştırabilir ve kodun hangi bölümünün yoğun olduğunu tespit edebilirsiniz.


Kısaca özetlemek gerekirse, perf stat basit ama güçlü bir başlangıç noktasıdır: olay kümesini seçin, hedef süreci çalıştırın ve sonuçları IPC ve bellek/veri yolu açısından yorumlayın. perf stat ile elde ettiğiniz metrikler, performans iyileştirme çabalarınızda net bir referans sağlar. Kendi deneyimlerinizde hangi olay setlerini tercih ediyorsunuz, ve hangi durumlarda daha derin analiz için perf top, perf record gibi araçlara yöneldiniz?

Debes haber iniciado sesión para responder.

0 citas seleccionadas