From 94d9483d036b1a222f41fd57b1605f1138fee984 Mon Sep 17 00:00:00 2001 From: Daniel Nichter Date: Fri, 30 Mar 2012 11:35:32 -0600 Subject: [PATCH 1/2] Make vmstat, iostat, and mpstat run for --run-time not --interval. --- bin/pt-stalk | 12 ++++++------ lib/bash/collect.sh | 12 ++++++------ t/lib/bash/collect.sh | 12 +++++++++++- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/bin/pt-stalk b/bin/pt-stalk index 7b1a3597..f9fca9e3 100755 --- a/bin/pt-stalk +++ b/bin/pt-stalk @@ -710,16 +710,16 @@ collect() { $CMD_SYSCTL -a >> "$d/$p-sysctl" & fi if [ "$CMD_VMSTAT" ]; then - $CMD_VMSTAT 1 $OPT_INTERVAL >> "$d/$p-vmstat" & - $CMD_VMSTAT $OPT_INTERVAL 2 >> "$d/$p-vmstat-overall" & + $CMD_VMSTAT 1 $OPT_RUN_TIME >> "$d/$p-vmstat" & + $CMD_VMSTAT $OPT_RUN_TIME 2 >> "$d/$p-vmstat-overall" & fi if [ "$CMD_IOSTAT" ]; then - $CMD_IOSTAT -dx 1 $OPT_INTERVAL >> "$d/$p-iostat" & - $CMD_IOSTAT -dx $OPT_INTERVAL 2 >> "$d/$p-iostat-overall" & + $CMD_IOSTAT -dx 1 $OPT_RUN_TIME >> "$d/$p-iostat" & + $CMD_IOSTAT -dx $OPT_RUN_TIME 2 >> "$d/$p-iostat-overall" & fi if [ "$CMD_MPSTAT" ]; then - $CMD_MPSTAT -P ALL 1 $OPT_INTERVAL >> "$d/$p-mpstat" & - $CMD_MPSTAT -P ALL $OPT_INTERVAL 1 >> "$d/$p-mpstat-overall" & + $CMD_MPSTAT -P ALL 1 $OPT_RUN_TIME >> "$d/$p-mpstat" & + $CMD_MPSTAT -P ALL $OPT_RUN_TIME 1 >> "$d/$p-mpstat-overall" & fi $CMD_MYSQLADMIN $EXT_ARGV ext -i1 -c$OPT_RUN_TIME >>"$d/$p-mysqladmin" & diff --git a/lib/bash/collect.sh b/lib/bash/collect.sh index 9cba7cef..ef56a3ad 100644 --- a/lib/bash/collect.sh +++ b/lib/bash/collect.sh @@ -148,16 +148,16 @@ collect() { $CMD_SYSCTL -a >> "$d/$p-sysctl" & fi if [ "$CMD_VMSTAT" ]; then - $CMD_VMSTAT 1 $OPT_INTERVAL >> "$d/$p-vmstat" & - $CMD_VMSTAT $OPT_INTERVAL 2 >> "$d/$p-vmstat-overall" & + $CMD_VMSTAT 1 $OPT_RUN_TIME >> "$d/$p-vmstat" & + $CMD_VMSTAT $OPT_RUN_TIME 2 >> "$d/$p-vmstat-overall" & fi if [ "$CMD_IOSTAT" ]; then - $CMD_IOSTAT -dx 1 $OPT_INTERVAL >> "$d/$p-iostat" & - $CMD_IOSTAT -dx $OPT_INTERVAL 2 >> "$d/$p-iostat-overall" & + $CMD_IOSTAT -dx 1 $OPT_RUN_TIME >> "$d/$p-iostat" & + $CMD_IOSTAT -dx $OPT_RUN_TIME 2 >> "$d/$p-iostat-overall" & fi if [ "$CMD_MPSTAT" ]; then - $CMD_MPSTAT -P ALL 1 $OPT_INTERVAL >> "$d/$p-mpstat" & - $CMD_MPSTAT -P ALL $OPT_INTERVAL 1 >> "$d/$p-mpstat-overall" & + $CMD_MPSTAT -P ALL 1 $OPT_RUN_TIME >> "$d/$p-mpstat" & + $CMD_MPSTAT -P ALL $OPT_RUN_TIME 1 >> "$d/$p-mpstat-overall" & fi # Collect multiple snapshots of the status variables. We use diff --git a/t/lib/bash/collect.sh b/t/lib/bash/collect.sh index 397b902e..e5d5741e 100644 --- a/t/lib/bash/collect.sh +++ b/t/lib/bash/collect.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -plan 20 +plan 21 TMPFILE="$TEST_TMPDIR/parse-opts-output" TMPDIR="$TEST_TMPDIR" @@ -143,6 +143,16 @@ collect "$TMPDIR/collect" "2011_12_05" > $p-output 2>&1 iters=$(cat $p-df | grep -c '^TS ') is "$iters" "2" "2 iteration/2s run time" +if [ -f "$p-vmstat" ]; then + n=$(awk '/[ ]*[0-9]/ { n += 1 } END { print n }' "$p-vmstat") + is \ + "$n" \ + "2" \ + "vmstat runs for --run-time seconds (bug 955860)" +else + is "1" "1" "SKIP vmstat not installed" +fi + # ############################################################################ # Done # ############################################################################ From 427a0698018c5cfc46a698a22391cd6a1b148ae6 Mon Sep 17 00:00:00 2001 From: Daniel Nichter Date: Fri, 30 Mar 2012 15:02:45 -0600 Subject: [PATCH 2/2] Test that vmstatu runs for --run-time with --no-stalk. --- t/pt-stalk/pt-stalk.t | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/t/pt-stalk/pt-stalk.t b/t/pt-stalk/pt-stalk.t index 7e44dea8..9e628797 100644 --- a/t/pt-stalk/pt-stalk.t +++ b/t/pt-stalk/pt-stalk.t @@ -24,7 +24,7 @@ if ( !$dbh ) { plan skip_all => 'Cannot connect to sandbox master'; } else { - plan tests => 25; + plan tests => 26; } my $cnf = "/tmp/12345/my.sandbox.cnf"; @@ -263,6 +263,17 @@ is( "Not stalking, collect ran for --run-time" ); +my $vmstat = `which vmstat 2>/dev/null`; +SKIP: { + skip "vmstat is not installed", 1 unless $vmstat; + chomp(my $n=`awk '/[ ]*[0-9]/ { n += 1 } END { print n }' "$dest/nostalk-vmstat"`); + is( + $n, + "2", + "vmstat ran for --run-time seconds (bug 955860)" + ); +}; + is( `cat $dest/nostalk-hostname`, `hostname`,