... | ... |
@@ -19,8 +19,7 @@ set +o xtrace |
19 | 19 |
# start_dstat() - Start running processes, including screen |
20 | 20 |
function start_dstat { |
21 | 21 |
# A better kind of sysstat, with the top process per time slice |
22 |
- DSTAT_OPTS="-tcmndrylpg --top-cpu-adv --top-io-adv" |
|
23 |
- run_process dstat "dstat $DSTAT_OPTS" |
|
22 |
+ run_process dstat "$TOP_DIR/tools/dstat.sh $LOGDIR" |
|
24 | 23 |
|
25 | 24 |
# To enable peakmem_tracker add: |
26 | 25 |
# enable_service peakmem_tracker |
27 | 26 |
new file mode 100755 |
... | ... |
@@ -0,0 +1,32 @@ |
0 |
+#!/bin/bash |
|
1 |
+ |
|
2 |
+# **tools/dstat.sh** - Execute instances of DStat to log system load info |
|
3 |
+# |
|
4 |
+# Multiple instances of DStat are executed in order to take advantage of |
|
5 |
+# incompatible features, particularly CSV output and the "top-cpu-adv" and |
|
6 |
+# "top-io-adv" flags. |
|
7 |
+# |
|
8 |
+# Assumes: |
|
9 |
+# - dstat command is installed |
|
10 |
+ |
|
11 |
+# Retreive log directory as argument from calling script. |
|
12 |
+LOGDIR=$1 |
|
13 |
+ |
|
14 |
+# Command line arguments for primary DStat process. |
|
15 |
+DSTAT_OPTS="-tcmndrylpg --top-cpu-adv --top-io-adv" |
|
16 |
+ |
|
17 |
+# Command-line arguments for secondary background DStat process. |
|
18 |
+DSTAT_CSV_OPTS="-tcmndrylpg --output $LOGDIR/dstat-csv.log" |
|
19 |
+ |
|
20 |
+# Execute and background the secondary dstat process and discard its output. |
|
21 |
+dstat $DSTAT_CSV_OPTS >& /dev/null & |
|
22 |
+ |
|
23 |
+# Execute and background the primary dstat process, but keep its output in this |
|
24 |
+# TTY. |
|
25 |
+dstat $DSTAT_OPTS & |
|
26 |
+ |
|
27 |
+# Catch any exit signals, making sure to also terminate any child processes. |
|
28 |
+trap "kill -- -$$" EXIT |
|
29 |
+ |
|
30 |
+# Keep this script running as long as child dstat processes are alive. |
|
31 |
+wait |