观察服务器mysql的访问周期变化

思路

ab测试工具向指定服务器发起压测,服务器端使用脚本监测mysql三个参数(Queries:查询数量Threads_connected:代表当前已建立连接的数量,因为一个连接就需要一个线程,所以也可以看成当前被使用的线程数。Threads_running:代表当前激活的(非睡眠状态)线程数。并不是代表正在使用的线程数,有时候连接已建立,但是连接处于sleep状态,这里相对应的线程也是sleep状态。 )的变化情况并记录。

脚本编写

#! /bin/bash
while true
do

mysqladmin -uroot -p123456 ext|awk '/Queries/{q=$4}/Threads_connected/{c=$4}/Threads_running/{r=$4}END{printf("%d %d %d\n",q,c,r)}' >> status.txt

sleep 1
done

脚本运行,每间隔一秒钟查询一次mysql连接情况。

ab测试语句

ab -c 500 -n 2000000 http://test.com/ab_test.php

ab_test.php代码就随便写点数据库连接查询就好了。也可以用来监测redis或者mc缓存失效时间对数据库连接波动的影响,在ab测试期间缓存集中失效,进而产生大量数据库查询,造成崩溃等等。

产生的数据大概的样子是

也可根据数据产生时间做成页面图表来观察。来确定服务器的问题出现在什么地方。

发布了66 篇原创文章 · 获赞 84 · 访问量 34万+

猜你喜欢

转载自blog.csdn.net/Alen_xiaoxin/article/details/85235903
今日推荐