一款查看mysql QPS的脚本

 

本脚本黏贴就可以使用绝对不坑人!!!

(此脚本来源如一位大神网友)

 

 

 

执行效果:

 

 

 

 

脚本:


#!/bin/bash
PW=Eqipay20150504@
mysqladmin -P3306 -uroot -p$PW -r -i 1 ext |\
awk -F"|" \
"BEGIN{ count=0; }"\
'{ if($2 ~ /Variable_name/ && ((++count)%20 == 1)){\
print "----------|---------|--- MySQL Command Status --|----- Innodb row operation ----|-- Buffer Pool Read --";\
print "---Time---|---QPS---|select insert update delete| read inserted updated deleted| logical physical";\
}\
else if ($2 ~ /Queries/){queries=$3;}\
else if ($2 ~ /Com_select /){com_select=$3;}\
else if ($2 ~ /Com_insert /){com_insert=$3;}\
else if ($2 ~ /Com_update /){com_update=$3;}\
else if ($2 ~ /Com_delete /){com_delete=$3;}\
else if ($2 ~ /Innodb_rows_read/){innodb_rows_read=$3;}\
else if ($2 ~ /Innodb_rows_deleted/){innodb_rows_deleted=$3;}\
else if ($2 ~ /Innodb_rows_inserted/){innodb_rows_inserted=$3;}\
else if ($2 ~ /Innodb_rows_updated/){innodb_rows_updated=$3;}\
else if ($2 ~ /Innodb_buffer_pool_read_requests/){innodb_lor=$3;}\
else if ($2 ~ /Innodb_buffer_pool_reads/){innodb_phr=$3;}\
else if ($2 ~ /Uptime / && count >= 2){\
printf(" %s |%9d",strftime("%H:%M:%S"),queries);\
printf("|%6d %6d %6d %6d",com_select,com_insert,com_update,com_delete);\
printf("|%6d %8d %7d %7d",innodb_rows_read,innodb_rows_inserted,innodb_rows_updated,innodb_rows_deleted);\
printf("|%10d %11d\n",innodb_lor,innodb_phr);\
}}'

 

=================================================

上面太复杂了吗?来点简单的吧!!

 

1、通过各种awk,sed,gerp你就可以获取到你需要的的所有信息啦!!!

 

 

 2、

 

转载于:https://www.cnblogs.com/fanxuanhui-linux/p/6189269.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的输出 MySQL QPS 和性能指标的 shell 脚本: ```bash #!/bin/bash # MySQL 登录信息 USER="username" PASSWORD="password" HOST="localhost" PORT="3306" DB="database_name" # 获取当前时间戳 TIMESTAMP=$(date +%s) # 执行 show global status 命令并保存结果到文件 mysql -u $USER -p$PASSWORD -h $HOST -P $PORT -e "show global status" > status_${TIMESTAMP}.txt # 从结果文件中解析出 QPS 和其他性能指标 COM_COMMIT=$(cat status_${TIMESTAMP}.txt | grep -w "Com_commit" | awk '{print $2}') COM_ROLLBACK=$(cat status_${TIMESTAMP}.txt | grep -w "Com_rollback" | awk '{print $2}') INNODB_ROW_LOCK_TIME_AVG=$(cat status_${TIMESTAMP}.txt | grep -w "Innodb_row_lock_time_avg" | awk '{print $2}') INNODB_ROW_LOCK_TIME_MAX=$(cat status_${TIMESTAMP}.txt | grep -w "Innodb_row_lock_time_max" | awk '{print $2}') INNODB_ROW_LOCK_TIME_MIN=$(cat status_${TIMESTAMP}.txt | grep -w "Innodb_row_lock_time_min" | awk '{print $2}') INNODB_ROW_LOCK_TIME=$(cat status_${TIMESTAMP}.txt | grep -w "Innodb_row_lock_time" | awk '{print $2}') INNODB_ROWS_READ=$(cat status_${TIMESTAMP}.txt | grep -w "Innodb_rows_read" | awk '{print $2}') INNODB_ROWS_UPDATED=$(cat status_${TIMESTAMP}.txt | grep -w "Innodb_rows_updated" | awk '{print $2}') UPTIME=$(cat status_${TIMESTAMP}.txt | grep -w "Uptime" | awk '{print $2}') # 计算 QPS TOTAL_QUERIES=$((COM_COMMIT + COM_ROLLBACK)) QPS=$(echo "scale=2; $TOTAL_QUERIES / $UPTIME" | bc) # 输出结果 echo "QPS: $QPS" echo "InnoDB Row Lock Time: avg=$INNODB_ROW_LOCK_TIME_AVG, max=$INNODB_ROW_LOCK_TIME_MAX, min=$INNODB_ROW_LOCK_TIME_MIN, total=$INNODB_ROW_LOCK_TIME" echo "InnoDB Rows Read: $INNODB_ROWS_READ" echo "InnoDB Rows Updated: $INNODB_ROWS_UPDATED" # 删除结果文件 rm status_${TIMESTAMP}.txt ``` 你可以将上述代码保存为一个 `mysql_perf.sh` 文件,然后在终端运行 `bash mysql_perf.sh` 来执行脚本。请注意,你需要将脚本中的 MySQL 登录信息和数据库名称替换为你自己的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值