mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-11 21:51:21 +00:00
Merge pt-stalk-1019648.
This commit is contained in:
26
bin/pt-stalk
26
bin/pt-stalk
@@ -822,13 +822,12 @@ collect() {
|
|||||||
log "Could not find the MySQL error log"
|
log "Could not find the MySQL error log"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local innostat="SHOW /*!40100 ENGINE*/ INNODB STATUS\G"
|
|
||||||
if [ "${mysql_version}" '>' "5.1" ]; then
|
if [ "${mysql_version}" '>' "5.1" ]; then
|
||||||
local mutex="SHOW ENGINE INNODB MUTEX"
|
local mutex="SHOW ENGINE INNODB MUTEX"
|
||||||
else
|
else
|
||||||
local mutex="SHOW MUTEX STATUS"
|
local mutex="SHOW MUTEX STATUS"
|
||||||
fi
|
fi
|
||||||
$CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus1" &
|
innodb_status 1
|
||||||
$CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status1" &
|
$CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status1" &
|
||||||
open_tables >> "$d/$p-opentables1" &
|
open_tables >> "$d/$p-opentables1" &
|
||||||
|
|
||||||
@@ -968,7 +967,7 @@ collect() {
|
|||||||
[ "$mysqld_pid" ] && kill -s 18 $mysqld_pid
|
[ "$mysqld_pid" ] && kill -s 18 $mysqld_pid
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus2" &
|
innodb_status 2
|
||||||
$CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status2" &
|
$CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status2" &
|
||||||
open_tables >> "$d/$p-opentables2" &
|
open_tables >> "$d/$p-opentables2" &
|
||||||
|
|
||||||
@@ -1036,6 +1035,27 @@ transactions() {
|
|||||||
$CMD_MYSQL $EXT_ARGV -e "SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G"
|
$CMD_MYSQL $EXT_ARGV -e "SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
innodb_status() {
|
||||||
|
local n=$1
|
||||||
|
|
||||||
|
local innostat=""
|
||||||
|
|
||||||
|
$CMD_MYSQL $EXT_ARGV -e "SHOW /*!40100 ENGINE*/ INNODB STATUS\G" \
|
||||||
|
>> "$d/$p-innodbstatus$n"
|
||||||
|
grep "END OF INNODB" "$d/$p-innodbstatus$n" >/dev/null || {
|
||||||
|
if [ -d /proc -a -d /proc/$mysqld_pid ]; then
|
||||||
|
for fd in /proc/$mysqld_pid/fd/*; do
|
||||||
|
file $fd | grep deleted >/dev/null && {
|
||||||
|
grep 'INNODB' $fd >/dev/null && {
|
||||||
|
cat $fd > "$d/$p-innodbstatus$n"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
# End collect package
|
# End collect package
|
||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
|
@@ -103,13 +103,12 @@ collect() {
|
|||||||
|
|
||||||
# Get a sample of these right away, so we can get these without interaction
|
# Get a sample of these right away, so we can get these without interaction
|
||||||
# with the other commands we're about to run.
|
# with the other commands we're about to run.
|
||||||
local innostat="SHOW /*!40100 ENGINE*/ INNODB STATUS\G"
|
|
||||||
if [ "${mysql_version}" '>' "5.1" ]; then
|
if [ "${mysql_version}" '>' "5.1" ]; then
|
||||||
local mutex="SHOW ENGINE INNODB MUTEX"
|
local mutex="SHOW ENGINE INNODB MUTEX"
|
||||||
else
|
else
|
||||||
local mutex="SHOW MUTEX STATUS"
|
local mutex="SHOW MUTEX STATUS"
|
||||||
fi
|
fi
|
||||||
$CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus1" &
|
innodb_status 1
|
||||||
$CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status1" &
|
$CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status1" &
|
||||||
open_tables >> "$d/$p-opentables1" &
|
open_tables >> "$d/$p-opentables1" &
|
||||||
|
|
||||||
@@ -272,7 +271,7 @@ collect() {
|
|||||||
[ "$mysqld_pid" ] && kill -s 18 $mysqld_pid
|
[ "$mysqld_pid" ] && kill -s 18 $mysqld_pid
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus2" &
|
innodb_status 2
|
||||||
$CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status2" &
|
$CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status2" &
|
||||||
open_tables >> "$d/$p-opentables2" &
|
open_tables >> "$d/$p-opentables2" &
|
||||||
|
|
||||||
@@ -349,6 +348,27 @@ transactions() {
|
|||||||
$CMD_MYSQL $EXT_ARGV -e "SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G"
|
$CMD_MYSQL $EXT_ARGV -e "SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
innodb_status() {
|
||||||
|
local n=$1
|
||||||
|
|
||||||
|
local innostat=""
|
||||||
|
|
||||||
|
$CMD_MYSQL $EXT_ARGV -e "SHOW /*!40100 ENGINE*/ INNODB STATUS\G" \
|
||||||
|
>> "$d/$p-innodbstatus$n"
|
||||||
|
grep "END OF INNODB" "$d/$p-innodbstatus$n" >/dev/null || {
|
||||||
|
if [ -d /proc -a -d /proc/$mysqld_pid ]; then
|
||||||
|
for fd in /proc/$mysqld_pid/fd/*; do
|
||||||
|
file $fd | grep deleted >/dev/null && {
|
||||||
|
grep 'INNODB' $fd >/dev/null && {
|
||||||
|
cat $fd > "$d/$p-innodbstatus$n"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
# End collect package
|
# End collect package
|
||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
|
Reference in New Issue
Block a user