-
-
Save filimonov/b76de14a3e27a01a62f7735a2405d4ae to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -ex | |
set -o pipefail | |
trap "exit" INT TERM | |
trap "kill $(jobs -pr) ||:" EXIT | |
stage=${stage:-} | |
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | |
rm -rf data {affected-queries,shm-traces,trace-filtered,flamegraph-query-runs}.tsv {interesting-addrs-,stacks.}{left,right}.{tsv,rep} ||: | |
for version in right | |
do | |
rm -rf data | |
clickhouse-local --stacktrace --verbose --query " | |
create table addresses_src($(cat "$version-addresses.tsv.columns")) | |
engine File(TSVWithNamesAndTypes, '$version-addresses.tsv'); | |
create table addresses_join engine Join(any, left, addr) as | |
select addr, name from addresses_src; | |
create table interesting_addrs engine File(TSVWithNamesAndTypes, 'interesting-addrs-$version.tsv') as | |
select distinct addr from addresses_src | |
where multiSearchAny(name, | |
['arena_maybe_decay'] | |
--['madvise', 'mmap', 'pages_commit_impl', 'arena_maybe_decay'] | |
) | |
; | |
select count(*) from file('$version-trace-log.tsv', TSVWithNamesAndTypes, '$(cat "$version-trace-log.tsv.columns")') | |
where query_id = '' | |
; | |
create table stacks engine File(TSV, 'stacks.$version.rep') as | |
select | |
arrayStringConcat( | |
arrayMap( | |
x -> joinGet(addresses_join, 'name', x), | |
trace | |
), | |
';' | |
) readable_trace, | |
count() | |
from file('$version-trace-log.tsv', TSVWithNamesAndTypes, | |
'$(cat "$version-trace-log.tsv.columns")') trace_log | |
where arrayJoin(trace) in interesting_addrs | |
and query_id != '' | |
group by trace | |
; | |
" | |
~/fg/flamegraph.pl < "stacks.$version.rep" > "$version.svg" | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment