Merge "Enable CSV logging output for DStat."

This commit is contained in:
Jenkins 2015-10-07 23:11:57 +00:00 committed by Gerrit Code Review
commit d1ddc5396a
2 changed files with 33 additions and 2 deletions

View File

@ -19,8 +19,7 @@ set +o xtrace
# start_dstat() - Start running processes, including screen
function start_dstat {
# A better kind of sysstat, with the top process per time slice
DSTAT_OPTS="-tcmndrylpg --top-cpu-adv --top-io-adv"
run_process dstat "dstat $DSTAT_OPTS"
run_process dstat "$TOP_DIR/tools/dstat.sh $LOGDIR"
# To enable peakmem_tracker add:
# enable_service peakmem_tracker

32
tools/dstat.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
# **tools/dstat.sh** - Execute instances of DStat to log system load info
#
# Multiple instances of DStat are executed in order to take advantage of
# incompatible features, particularly CSV output and the "top-cpu-adv" and
# "top-io-adv" flags.
#
# Assumes:
# - dstat command is installed
# Retreive log directory as argument from calling script.
LOGDIR=$1
# Command line arguments for primary DStat process.
DSTAT_OPTS="-tcmndrylpg --top-cpu-adv --top-io-adv"
# Command-line arguments for secondary background DStat process.
DSTAT_CSV_OPTS="-tcmndrylpg --output $LOGDIR/dstat-csv.log"
# Execute and background the secondary dstat process and discard its output.
dstat $DSTAT_CSV_OPTS >& /dev/null &
# Execute and background the primary dstat process, but keep its output in this
# TTY.
dstat $DSTAT_OPTS &
# Catch any exit signals, making sure to also terminate any child processes.
trap "kill -- -$$" EXIT
# Keep this script running as long as child dstat processes are alive.
wait