我们前面已经了解了如何利用awk统计mysql的状态
写一个脚本每秒钟去获取mysql服务器的状态
vi tjstatus.sh
#!/bin/bash
while true
do
mysqladmin -uroot -padmin888 ext|awk '/Queries/{q=$4}/Threads_connected/{c=$4}/Threads_running/{r=$4}END{printf("%d %d %d\n",q,c,r)}' >> mysqlstatus.txt
sleep 1
done
执行:
sh tjstatus.sh
运行一段时间之后,我们来查看 more mysqlstatus.txt
:
注意:当前行 减 上一行,才是每秒钟的请求数。
同样利用awk来处理一下mysqlstatus.txt
awk '{q=$1-last;last=$1}{printf("%d %d %d\n",q,$2,$3)}' mysqlstuts.txt
把结果复制下来(不要头尾的明显差距很大的数据),根据结果观察周期。
以下的转成图表的技巧:
(先在编辑器里把空格换成制表符,以方便拷贝到excel中)
(从上图可以看出,大约30秒一个周期)
是否和你的缓存失效时间周期一致,那么就首先可以选择调整缓存生效策略,使失效时间分散或夜间失效。