Ice and Fire
Deep-Dive · · 1 min

Ice and Fire: How to read icicle and flame graphs

I am too lazy now a days to re-post the blog post with all its assets and animations here. So until I get to it, I have put a link to it here. Enjoy :) https://www.polarsignals.com/blog/posts/2023/03/28/how-to-read-icicle-and-flame-graphs

March 28, 2023 · 1 min · 36 words · Kemal Akkoyun
Building a Go Profiler Using Go
Talks · · 2 min

talk: Building a Go Profiler Using Go

Profiling has long been part of the Go developer’s toolbox to analyze the resource usage of a running process. But do you ever wonder how profilers built? In this talk, I will bring eBPF (a promising Kernel technology) and Go together to build a profiler for understanding Go code at runtime. Profiling has long been part of the developer’s toolbox to analyze the resource usage of a running process. Go users are very familiar with the concept thanks to state-of-art Go tooling. For years Google has consistently been able to cut down multiple percentage points in their fleet-wide resource usage every quarter, using techniques described in their “Google-Wide Profiling” paper, which is called continuous profiling. Through continuous profiling, the systematic collection of profiles, entirely new workflows suddenly become possible. ...

March 20, 2022 · 2 min · 307 words · Kemal Akkoyun
Deep-Dive · · 7 min

Fantastic Symbols and Where to Find Them - Part 2

Important This is a blog post series. If you haven’t read Part 1 we recommend you to do so first! In the first blog post, we learned about the fantastic symbols (debug symbols), how the symbolization process works and lastly, how to find the symbolic names of addresses in a compiled binary. ...

January 27, 2022 · 7 min · 1298 words · Kemal Akkoyun
Deep-Dive · · 9 min

Fantastic Symbols and Where to Find Them - Part 1

Symbolization is a technique that allows you to translate machine memory addresses to human-readable symbol information (symbols). Why do we need to read what programs do anyways? We usually do not need to translate everything to a human-readable format when things run smoothly. But when things go south, we need to understand what is going on under the hood. Symbolization is needed by introspection tools like debuggers, profilers and core dumps or any other program that needs to trace the execution of another program. While a target program is executing on a machine, these types of programs capture the stack traces of the program that is being executed. ...

January 13, 2022 · 9 min · 1703 words · Kemal Akkoyun
Parca - Profiling in the Cloud-Native Era
Talks · · 1 min

talk: Parca - Profiling in the Cloud-Native Era

For years Google has consistently been able to cut down multiple percentage points in their fleet-wide resource usage every quarter, using techniques described in their “Google-Wide Profiling” paper. Ad-hoc profiling has long been part of the developer’s toolbox to analyze CPU and memory usage of a running process, however, through continuous profiling, the systematic collection of profiles, entirely new workflows suddenly become possible. Matthias and Kemal will start this talk with an introduction to profiling with Go and demonstrate via Conprof - an open-source continuous profiling project - how continuous profiling allows for an unprecedented fleet-wide understanding of code at runtime. Attendees will learn how to continuously profile Go code to help guide building robust, reliable, and performant software and reduce cloud spend systematically. ...

September 25, 2021 · 1 min · 138 words · Kemal Akkoyun