ftrace ile Kernel İzleme: Temel Yaklaşımlar ve Uygulama Adımları

0 Yanıt 6 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
ftrace ile Kernel İzleme: Temel Yaklaşımlar ve Uygulama Adımları

Not: Bu paylaşım, kernel izleme konusunda kullanıcı dostu bir rehber olarak tasarlandı; adım adım ilerleyerek temel kullanımlardan ileri tekniklere geçilir.


İzleme amacıyla ftrace, Linux çekirdeğinde yerleşik olarak bulunan güçlü bir araç setidir. Başlangıç için temel mantık, çekirdekteki olayların akışını kayıt altına almak ve hangi fonksiyonların hangi sıklıkla çalıştığını görsel olarak takip etmekten oluşur. Bu süreç, performans sorunlarını tespit etmek, sürücü veya sistem çağrı katmanındaki darboğazları anlamak için değerlidir.

• Temel kavramlar: ftrace, Function Tracing ve Graph Tracing olmak üzere iki ana mod sunar. Function Tracing, çağrı zinciri üzerinde hangi fonksiyonların tetiklendiğini gösterirken, Graph Tracing her fonksiyon için giriş-çıkış sürelerini ve çağrı ağacını üretir. Bunlar, /sys/kernel/debug/tracing altında konumlanır ve erişim izinleri çekirdeğin derlenme konfigürasyonuna bağlı olarak değişir. Örneğin, echo 1 > /sys/kernel/debug/tracing/options/function_graph’nin açılması, fonksiyon gezintisini grafik modunda başlatır.

• Başlatma adımları: /sys/kernel/debug/tracing/ altında trace, current_tracer, function, function_graph_trigger gibi alanlar bulunur. Basit bir başlangıç için:
1) echo function > /sys/kernel/debug/tracing/currentTracer ile hangi izleyicinin aktif olduğunu belirleyin.
2) echo function > /sys/kernel/debug/tracing/tracer ile izlenecek katmandaki fonksiyonları seçin.
3) echo 1 > /sys/kernel/debug/tracing/tracing_on ile izlemeyi başlatın.
4) İzlemeyi durdurmak için again tracing_on’u 0 yapın ve trace dosyasını inceleyin.

• Filtreleme ve çıktı: Belirli bir modülü veya sürücüyü izlemek için filter adlı alanlar kullanılır. Örneğin, echo do_fork > /sys/kernel/debug/tracing/set_ftrace_filter ile yalnızca do_fork çağrısını izleyebilirsiniz. Çıktıyı incelemek için cat /sys/kernel/debug/tracing/trace komutu yeterlidir; bu, çağrı hiyerarşisini ve sürelerini metin halinde sunar.

• İleri teknikler ve güvenlik: Graph Tracing ile her fonksiyonun giriş-çıkış sürelerini toplamak, gecikme kaynaklarını daha net ortaya koyar. Ancak bu modun performans etkisi vardır ve üretim ortamında dikkatli kullanılması gerekir. Ayrıca çekirdek üzerinde erişim hakları kısıtlı olabileceğinden, kök (root) yetkisi veya uygun yetkiler gereklidir. DebugFS’nin sunulduğu sistemlerde güvenlik politikaları ile uyumlu hareket etmek önemlidir.

Konuya özgü pratik bir noktaya değinmek gerekirse, ftrace’i anlamak için bir deneysel senaryo üzerinde ilerlemek en faydalı yöntemdir: belirli bir dosya sistemi operasyonunun süresini izleyerek hangi katmanların zaman kaybettirdiğini karşılaştırmak, ve sonuçları grafiğe dökmektir. Bu yaklaşım, performans analizinin kavramsal temelini güçlendirir ve gerçek dünyadaki darboğazların tanımlanmasına olanak sağlar. Bu bağlamda, ftrace’i kendi sisteminizde güvenli bir test alanında deneyimlemek, kavramsal netliği artırır ve daha ileri tekniklerle çalışmayı kolaylaştırır.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi