Skip to content

Instantly share code, notes, and snippets.

@mizhka
Last active November 18, 2022 20:31
Show Gist options
  • Save mizhka/31c8ae0148729103d6384a254885b12e to your computer and use it in GitHub Desktop.
Save mizhka/31c8ae0148729103d6384a254885b12e to your computer and use it in GitHub Desktop.
FlameGraph for PostgreSQL with steroids
#/usr/bin/env sh
FLAMEHOME=/home/mizhka/repo/fbsd/FlameGraph
${FLAMEHOME}/stackcollapse-perf.pl $1 | sort | grep Postgre | \
sed 's#postmaster;_start;__libc_start_main;main;PostmasterMain;\[postgres\];##g' | \
sed 's#postmaster;_start;__libc_start_main;main;PostmasterMain;\[unknown\];##g' | \
sed 's#postmaster;\[postgres\];##g' | \
sed 's#postmaster;\[unknown\];##g' | \
sed 's#postgres;\[postgres\];##g' | \
sed 's#postgres;\[unknown\];##g' | \
sed 's#postgres;_start;__libc_start_main_alias_2;__libc_start_call_main;main;PostmasterMain;##g' | \
sed 's#postmaster;_start;__libc_start_main;main;PostmasterMain;##g' | \
sed 's#postgres;_start;__libc_start_main;main;PostmasterMain;##g' | \
sed 's#__libc_start_main_alias_2;__libc_start_call_main;main;PostmasterMain;##g' | \
sed 's#__libc_start_call_main;main;PostmasterMain;##g' | \
sed 's#__libc_start_main;main;PostmasterMain;##g' | \
sed 's#main;PostmasterMain;##g' | \
sed 's#PostmasterMain;##g' | \
sed 's#^PostgresMain;#ServerLoop;BackendStartup;BackendRun;PostgresMain;#g' | \
sed 's#^BackendStartup;BackendRun;#ServerLoop;BackendStartup;BackendRun;#g' > $1.pg
${FLAMEHOME}/flamegraph.pl $1.pg > $1.svg
${FLAMEHOME}/flamegraph.pl --reverse $1.pg > $1.reverse.svg
${FLAMEHOME}/stackcollapse-perf.pl $1 > $1.all
grep -v zfs $1.all | grep -v update_sd_lb > $1.all.pg
${FLAMEHOME}/flamegraph.pl $1.all.pg > $1.all.svg
${FLAMEHOME}/flamegraph.pl --reverse $1.all.pg > $1.all.reverse.svg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment