From 6f224fd2c29558230cb54ad832dfdc54f8c7fedf Mon Sep 17 00:00:00 2001 From: tom doron Date: Thu, 5 Mar 2020 17:19:24 -0800 Subject: [PATCH] add script to help setup performance measuring in linux motivation: performance tuning changes: * add script with setup code and example for running strace and perf --- scripts/linux_performance_setup.sh | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 scripts/linux_performance_setup.sh diff --git a/scripts/linux_performance_setup.sh b/scripts/linux_performance_setup.sh new file mode 100755 index 000000000..090ced794 --- /dev/null +++ b/scripts/linux_performance_setup.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# docker run --cap-add SYS_ADMIN -it -v `pwd`:/code -w /code swift:5.1 bash + +apt-get update +apt-get install -y vim htop strace linux-tools-common linux-tools-generic + +cd /usr/bin +rm -rf perf +ln -s /usr/lib/linux-tools/4.15.0-88-generic/perf perf +cd - + +cd build +git clone https://github.com/brendangregg/FlameGraph.git +cd - + +# build the code in relase mode with debug symbols +# swift build -c release -Xswiftc -g +# +# run the server +# (.build/release/MockServer) & +# +# strace +# export MAX_REQUESTS=10000 +# strace -o .build/strace-c-string-$MAX_REQUESTS -c .build/release/SwiftAwsLambdaStringSample +# strace -o .build/strace-ffftt-string-$MAX_REQUESTS -fftt .build/release/SwiftAwsLambdaStringSample +# +# perf +# export MAX_REQUESTS=10000 +# perf record -o .build/perf-$MAX_REQUESTS.data -g .build/release/SwiftAwsLambdaStringSample dward +# perf script -i .build/perf-$MAX_REQUESTS.data | .build/FlameGraph/stackcollapse-perf.pl | swift-demangle | .build/FlameGraph/flamegraph.pl > .build/flamegraph-$MAX_REQUESTS.svg