最近几个客户的mysql数据库负载总是跑的很高,而前面的web没事,于是自己写了一个shell脚本抓取mysql的procesllist分析程序,结构发现有一个表的数据很大,建立了index,但是没用,下面把这个脚本跟大家共享一下
cd /root
vi mysqllog
#!/bin/sh
MYSQL_PW='1234567'
logdir=/root/mysql-log
logfile=$logdir/thread.log
[ ! -d $logdir ] && mkdir -p $logdir
while :;
do
        date >>$logfile
        thr=`mysql -uroot -p$MYSQL_PW -e "status"|grep Threads|awk '{print $2}'`
        echo $thr >>$logfile
        [ $thr -gt 50 ] && mysql -uroot -p$MYSQL_PW -e "show full processlist" >$logdir/`date +%y%m%d-%H%M`-proc.log
        echo ====================== >>$logfile
        sleep 30
done
 
nohup ./mysqllog &
过一段时间看mysql-log分析日志