Home  >  Article  >  Database  >  Mysql压力测试shell脚本_MySQL

Mysql压力测试shell脚本_MySQL

WBOY
WBOYOriginal
2016-06-01 13:36:02871browse

bitsCN.com

Mysql压力测试shell脚本

 

Mysql自带了压力测试工具mysqlslap,所以我们可以不用自己编写程序来测试Mysql读取的压力。压力测试shell脚本如下:  www.bitsCN.com  

[plain] 

#!/bin/sh  

while true  

do  

    mysqlslap --concurrency=100 --iterations=10 --create-schema='test' --query="insert into test(c1,c2,c3,c4) values(1,1,1,'a')" --number-of-queries=200 --debug-info -uroot -p123456  

    usleep 100  

done  

上面脚本的意思是每隔100ms循环做这样的事:模拟100个mysql客户端,对数据库test的表test执行200次插入(number-of-queries = concurrency * 每个mysql客户端的查询次数,所以这里的每个mysql客户端的查询次数是2次),迭代10次。--debug-info是打印内存和CPU的相关信息。

接着我们可以编写shell脚本来输出指定时间间隔(比如1秒)内的mysql操作次数,shell脚本如下:

[plain] 

#!/bin/sh  

  

lastTimes="0"  

  

while true  

do  

    currentTimes=$(mysql -uroot -p'123456' -e "show global status like 'Com_insert'" | sed '1d' | awk '{print $2}')  

    times=$(expr ${currentTimes} - ${lastTimes})  

    lastTimes="${currentTimes}"  

    echo "${times}"  

    sleep 1  

done  

 

查看mysql各种操作的次数,可以通过查看global status里的'Com_'开头的变量,它们就是mysql的操作命令,比如Com_insert就是插入命令、Com_update就是更新命令,等等,具体可以查看文档说明。将相邻两次的次数相减,就得到这个时间间隔内执行的次数。

PS:除了iostat等命令外,也可以通过top命令来查看io的负载(看wait的百分比,如果大于等于 1 / cpu核数,则说明硬盘IO有问题)。请参考英文文章:Understanding Disk I/O - when should you be worried?

 

来源 http://blog.csdn.net/skyman_2001

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn