@@ -83,7 +83,7 @@ collect() {
8383 local mysql_version=" $( awk ' /^version[^_]/{print substr($2,1,3)}' " $d /$p -variables" ) "
8484
8585 # Is MySQL logging its errors to a file? If so, tail that file.
86- local mysql_error_log=" $( awk ' /log_error/{print $2}' " $d /$p -variables" ) "
86+ local mysql_error_log=" $( awk ' /^ log_error/{print $2}' " $d /$p -variables" ) "
8787 if [ -z " $mysql_error_log " -a " $mysqld_pid " ]; then
8888 # Try getting it from the open filehandle...
8989 mysql_error_log=" $( ls -l /proc/$mysqld_pid /fd | awk ' / 2 ->/{print $NF}' ) "
@@ -110,6 +110,7 @@ collect() {
110110 local mutex=" SHOW MUTEX STATUS"
111111 fi
112112 innodb_status 1
113+ tokudb_status 1
113114 $CMD_MYSQL $EXT_ARGV -e " $mutex " >> " $d /$p -mutex-status1" &
114115 open_tables >> " $d /$p -opentables1" &
115116
@@ -133,7 +134,7 @@ collect() {
133134 fi
134135 elif [ " $CMD_STRACE " -a " $OPT_COLLECT_STRACE " -a " $mysqld_pid " ]; then
135136 # Don't run oprofile and strace at the same time.
136- $CMD_STRACE -T -s 0 -f -p $mysqld_pid > " ${DEST} / $d -strace" &
137+ $CMD_STRACE -T -s 0 -f -p $mysqld_pid -o " $d / $p -strace" &
137138 local strace_pid=$!
138139 fi
139140
@@ -283,6 +284,7 @@ collect() {
283284 fi
284285
285286 innodb_status 2
287+ tokudb_status 2
286288 $CMD_MYSQL $EXT_ARGV -e " $mutex " >> " $d /$p -mutex-status2" &
287289 open_tables >> " $d /$p -opentables2" &
288290
@@ -304,7 +306,7 @@ collect() {
304306 for file in " $d /$p -" * ; do
305307 # If there's not at least 1 line that's not a TS,
306308 # then the file is empty.
307- if [ -z " $( grep -v ' ^TS ' --max-count 1 " $file " ) " ]; then
309+ if [ -z " $( grep -v ' ^TS ' --max-count 10 " $file " ) " ]; then
308310 log " Removing empty file $file " ;
309311 rm " $file "
310312 fi
@@ -321,7 +323,7 @@ open_tables() {
321323}
322324
323325lock_waits () {
324- local sql1=" SELECT
326+ local sql1=" SELECT SQL_NO_CACHE
325327 CONCAT('thread ', b.trx_mysql_thread_id, ' from ', p.host) AS who_blocks,
326328 IF(p.command = \" Sleep\" , p.time, 0) AS idle_in_trx,
327329 MAX(TIMESTAMPDIFF(SECOND, r.trx_wait_started, CURRENT_TIMESTAMP)) AS max_wait_time,
@@ -333,7 +335,7 @@ lock_waits() {
333335 GROUP BY who_blocks ORDER BY num_waiters DESC\G"
334336 $CMD_MYSQL $EXT_ARGV -e " $sql1 "
335337
336- local sql2=" SELECT
338+ local sql2=" SELECT SQL_NO_CACHE
337339 r.trx_id AS waiting_trx_id,
338340 r.trx_mysql_thread_id AS waiting_thread,
339341 TIMESTAMPDIFF(SECOND, r.trx_wait_started, CURRENT_TIMESTAMP) AS wait_time,
@@ -354,9 +356,16 @@ lock_waits() {
354356}
355357
356358transactions () {
357- $CMD_MYSQL $EXT_ARGV -e " SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX\G"
358- $CMD_MYSQL $EXT_ARGV -e " SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS\G"
359- $CMD_MYSQL $EXT_ARGV -e " SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G"
359+ $CMD_MYSQL $EXT_ARGV -e " SELECT SQL_NO_CACHE * FROM INFORMATION_SCHEMA.INNODB_TRX\G"
360+ $CMD_MYSQL $EXT_ARGV -e " SELECT SQL_NO_CACHE * FROM INFORMATION_SCHEMA.INNODB_LOCKS\G"
361+ $CMD_MYSQL $EXT_ARGV -e " SELECT SQL_NO_CACHE * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G"
362+ }
363+
364+ tokudb_status () {
365+ local n=$1
366+
367+ $CMD_MYSQL $EXT_ARGV -e " SHOW ENGINE TOKUDB STATUS\G" \
368+ >> " $d /$p -tokudbstatus$n " || rm -f " $d /$p -tokudbstatus$n "
360369}
361370
362371innodb_status () {
0 commit comments