<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/profiling-and-tracing-tools-across-system-layers-and-architectures-iltgvrjdo" -->

---
title: Profiling and Tracing Tools Across System Layers and...
description: A comprehensive catalog of profiling and tracing tools across every layer of the software stack — from OS-level kernel tracers (ftrace, perf, eBPF, LTTng,...
canonical: https://daily.dev/posts/profiling-and-tracing-tools-across-system-layers-and-architectures-iltgvrjdo
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Profiling and Tracing Tools Across System Layers and Architectures | daily.dev
og:description: A comprehensive catalog of profiling and tracing tools across every layer of the software stack — from OS-level kernel tracers (ftrace, perf, eBPF, LTTng,...
og:url: https://daily.dev/posts/profiling-and-tracing-tools-across-system-layers-and-architectures-iltgvrjdo
og:image: https://api.daily.dev/og/posts/ilTgvrjdO.png
og:image:alt: Profiling and Tracing Tools Across System Layers and Architectures
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Profiling and Tracing Tools Across System Layers and Architectures

**[eunomia eBPF Blog](https://daily.dev/sources/eunomia)** · 75 min read · 0 upvotes · 0 comments

## Summary

A comprehensive catalog of profiling and tracing tools across every layer of the software stack — from OS-level kernel tracers (ftrace, perf, eBPF, LTTng, DTrace, ETW) to application-level profilers (Valgrind, VTune, gprof), runtime-specific tools (JFR for JVM, cProfile/Py-Spy for Python, pprof for Go), distributed tracing systems (OpenTelemetry, Jaeger, Zipkin), embedded/RTOS tracers (Tracealyzer, ARM ETM/ITM), and HPC tools (HPCToolkit, TAU, Score-P, Scalasca). The post compares instrumentation approaches (static vs. dynamic), overhead characteristics, architecture support (x86, ARM, RISC-V, GPUs, DSPs), and design trade-offs. It also covers emerging trends like continuous profiling in production, linking traces with flame graphs, and unifying observability pillars (logs, metrics, traces, profiles).

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://eunomia.dev/blog/2025/08/20/profiling-and-tracing-tools-across-system-layers-and-architectures>

## Questions this post answers

### What is the overhead of Java Flight Recorder (JFR) in production?

Java Flight Recorder typically imposes less than 1% performance overhead, even under heavy production load. It achieves this through highly efficient thread-local binary buffers and a circular recording model that lets you dump data on demand. JFR continuously records CPU samples, lock contention, GC events, and allocations without requiring a separate profiling agent or restart.

_JVM performance engineers tracking JFR behavior across releases follow developments like these on daily.dev._

### What is the difference between eBPF-based tracing and LTTng on Linux?

eBPF is a general-purpose in-kernel virtual machine that runs JIT-compiled, verifier-checked programs attached to kprobes, uprobes, or perf events — enabling programmable filtering and aggregation with low overhead and no kernel module required. LTTng uses a loadable kernel module with static tracepoints and USDT for user space, optimized for very high-throughput binary logging to disk with minimal per-event latency, but with a narrower scope than eBPF.

_Developers choosing between Linux observability tools for production systems find comparative coverage like this on daily.dev._

### How does HPCToolkit profile GPU kernels without heavy instrumentation overhead?

HPCToolkit uses NVIDIA's CUPTI to perform GPU program-counter sampling on running warps, avoiding the need to insert probes into massively parallel GPU code. It correlates sampled GPU instruction-level data with CPU call stacks post-mortem, charging GPU kernel time back to the CPU function that launched it. This approach works across NVIDIA, AMD, and Intel GPUs via their respective tracing APIs.

_HPC and GPU performance engineers keeping up with profiling tooling across vendors rely on daily.dev for this kind of coverage._

## Similar posts on daily.dev

- [Continuous profiling for native code: Understanding the what, why, and how](https://daily.dev/posts/continuous-profiling-for-native-code-understanding-the-what-why-and-how-xj9vz4mfd) · Grafana Labs · 0 upvotes · 0 comments
- [Debugging Performance in PHP](https://daily.dev/posts/debugging-performance-in-php-4dll06a7g) · PHPUnit Expert · 9 upvotes · 0 comments
- [15 Best Observability Tools in DevOps for 2026](https://daily.dev/posts/15-best-observability-tools-in-devops-for-2026-gupmltyvp) · Spacelift · 0 upvotes · 0 comments
- [Google Adds Cycle-Level Kernel Profiling to XProf](https://daily.dev/posts/google-adds-cycle-level-kernel-profiling-to-xprof-mak8uavci) · InfoQ · 0 upvotes · 0 comments

---

Tags: [#devops](https://daily.dev/tags/devops), [#linux](https://daily.dev/tags/linux)

[View this post on daily.dev](https://daily.dev/posts/profiling-and-tracing-tools-across-system-layers-and-architectures-iltgvrjdo)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Profiling and Tracing Tools Across System Layers and Architectures","url":"https://daily.dev/posts/profiling-and-tracing-tools-across-system-layers-and-architectures-iltgvrjdo","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/profiling-and-tracing-tools-across-system-layers-and-architectures-iltgvrjdo"},"datePublished":"2026-08-11T08:52:22.614Z","dateModified":"2026-08-11T09:07:02.327Z","description":"A comprehensive catalog of profiling and tracing tools across every layer of the software stack — from OS-level kernel tracers (ftrace, perf, eBPF, LTTng,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b59e04eefe0ea85df0b7e50151b0b12e?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b59e04eefe0ea85df0b7e50151b0b12e?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"eunomia eBPF Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"eunomia eBPF Blog","logo":"https://media.daily.dev/image/upload/s--z-nTl7TK--/f_auto,q_auto/v1786438304/logos/eunomia?_a=BAMAMicg0","url":"https://daily.dev/sources/eunomia"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/profiling-and-tracing-tools-across-system-layers-and-architectures-iltgvrjdo","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"devops,linux","timeRequired":"PT75M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"eunomia eBPF Blog","item":"https://daily.dev/sources/eunomia"},{"@type":"ListItem","position":3,"name":"Profiling and Tracing Tools Across System Layers and Architectures"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/profiling-and-tracing-tools-across-system-layers-and-architectures-iltgvrjdo#faq","mainEntity":[{"@type":"Question","name":"What is the overhead of Java Flight Recorder (JFR) in production?","acceptedAnswer":{"@type":"Answer","text":"Java Flight Recorder typically imposes less than 1% performance overhead, even under heavy production load. It achieves this through highly efficient thread-local binary buffers and a circular recording model that lets you dump data on demand. JFR continuously records CPU samples, lock contention, GC events, and allocations without requiring a separate profiling agent or restart. JVM performance engineers tracking JFR behavior across releases follow developments like these on daily.dev."}},{"@type":"Question","name":"What is the difference between eBPF-based tracing and LTTng on Linux?","acceptedAnswer":{"@type":"Answer","text":"eBPF is a general-purpose in-kernel virtual machine that runs JIT-compiled, verifier-checked programs attached to kprobes, uprobes, or perf events — enabling programmable filtering and aggregation with low overhead and no kernel module required. LTTng uses a loadable kernel module with static tracepoints and USDT for user space, optimized for very high-throughput binary logging to disk with minimal per-event latency, but with a narrower scope than eBPF. Developers choosing between Linux observability tools for production systems find comparative coverage like this on daily.dev."}},{"@type":"Question","name":"How does HPCToolkit profile GPU kernels without heavy instrumentation overhead?","acceptedAnswer":{"@type":"Answer","text":"HPCToolkit uses NVIDIA's CUPTI to perform GPU program-counter sampling on running warps, avoiding the need to insert probes into massively parallel GPU code. It correlates sampled GPU instruction-level data with CPU call stacks post-mortem, charging GPU kernel time back to the CPU function that launched it. This approach works across NVIDIA, AMD, and Intel GPUs via their respective tracing APIs. HPC and GPU performance engineers keeping up with profiling tooling across vendors rely on daily.dev for this kind of coverage."}}]}
```

