mysql压力测试怎么做 sql压力测试工具

MySQL自带的mysqlslap详细使用步骤Mysqlslap是从5.1.4版开始的一个MySQL官方提供的压力测试工具 。通过模拟多个并发客户端访问MySQL来执行压力测试,同时详细的提供了“高负荷攻击MySQL”的数据性能报告 。并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别 。
它的使用语法如下:
shell/usr/local/mysql/bin/mysqlslap [options]
常用参数【options】详细介绍:
--concurrency代表并发数量,多个可以用逗号隔开 。例如:--concurrency=50,200,500
--engines代表要测试的引擎,可以有多个,用分隔符隔开 。例如:--engines=myisam,innodb,memory
--iterations代表要在不同并发环境下 , 各自运行测试多少次 。
--auto-generate-sql 代表用mysqlslap工具自己生成的SQL脚本来测试并发压力 。
--auto-generate-sql-add-auto-increment 代表对生成的表自动添加auto_increment列,从5.1.18版本开始,
--auto-generate-sql-load-type 代表要测试的环境是读操作还是写操作还是两者混合的(read,write,update,mixed)
--number-of-queries 代表总共要运行多少条查询 。
--debug-info 代表要额外输出CPU以及内存的相关信息 。
--number-int-cols 代表示例表中的INTEGER类型的属性有几个 。
--number-char-cols代表示例表中的vachar类型的属性有几个 。
--create-schema 代表自定义的测试库名称 。
--query 代表自定义的测试SQL脚本 。
说明:
测试的过程需要生成测试表,插入测试数据,这个mysqlslap可以自动生成,默认生成一个mysqlslap的schema,如果已经存在则先删除 。可以用-only-print来打印实际的测试过程,整个测试完成后不会在数据库中留下痕迹 。
实验步骤:
练习一:
单线程测试 。测试做了什么 。
./bin/mysqlslap -a -uroot -p111111
多线程测试 。使用--concurrency来模拟并发连接 。
./bin/mysqlslap -a-c 100 -uroot -p111111
迭代测试 。用于需要多次执行测试得到平均值 。
./bin/mysqlslap-a -i 10 -uroot -p111111
练习二:
./bin/mysqlslap -auto-generate-sql-add-autoincrement -a -uroot -p111111
./bin/mysqlslap -a -auto-generate-sql-load-type=read -uroot -p111111
./bin/mysqlslap -a -auto-generate-secondary-indexes=3 -uroot -p111111
./bin/mysqlslap -a -auto-generate-sql-write-number=1000 -uroot -p111111
./bin/mysqlslap --create-schema world -q "select count(*) from City" -uroot -p111111
./bin/mysqlslap -a -e innodb -uroot -p111111
./bin/mysqlslap -a --number-of-queries=10 -uroot -p111111
练习三:
执行一次测试,分别50和100个并发,执行1000次总查询:
./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --debug-info -uroot -p111111
50和100个并发分别得到一次测试结果(Benchmark),并发数越多,执行完所有查询的时间越长 。为了准确起见,可以多迭代测试几次:
./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info -uroot -p111111
测试同时不同的存储引擎的性能进行对比:
./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info -uroot -p111111
如何做压力测试一个压力测试的流程:
1、明确测试目标
2、制定测试计划
3、实施测试 , 收集参数
4、分析测试结果
5、给出优化方案
一 、明确测试目标:如果是客户的需求,那需要向客户确认,有清楚的性能指标参数,测试时就是保证系统达到该指标并能良好运转,即压力测试 。如果是自己的系统需要有一个评估,那就需要完整的得到该系统的几个临界点,拿到完整的性能曲线,从而来分析部署情况,即为性能测试 。不管是哪个,知道了需求,才能制定计划 。
性能测试的目标是发现重大的系统瓶颈 。你可以想象一个系统由一系列的瓶颈组成;发现并改善一个瓶颈往往会在其他地方产生一个新的瓶颈 。例如,我曾为一运行微软Windows CE的器件部门工作 。我们发现的第一大性能问题体现在某一具体硬件环境下的内存管理中 。我们把问题分离出来,改善了内存分配的效率 。尔后再次运行我们的测试,又找到了一个新的瓶颈 , 这次体现在网络吞吐量上(throughput) 。解决了这个问题后,我们接着又为下一个瓶颈改善而工作,然后再下一个 , 直到整个系统都达到了性能目标 。要记住的是:关键在于要尽早订立性能目标,否则你可能不知道什么时候该停止性能测试 。
二、制定测试计划:确定使用什么工具,着重哪些参数,设置线程数,方法执行次数,执行时间,是否多个接口同时进行测试等等 。
三、实施测试,收集参数:选一个施压工具,来向部署好的服务发起高并发请求,同时关注和收集性能参数 。这个是我们花费时间最多的地方 。通常该阶段需要反复执行,来得到想要的数据 。通常来说,我们可以使用JMeter LR AB 自己写多线程等各种方式,之后介绍一下JMeter 。
四、分析测试结果:即根据上一节的参数介绍来进行参数分析 。
五、给出优化方案:如果是代码逻辑耗费cpu,就优化算法;如果是redis等数据库耗时,就增加节点,减少读?。列捶掷耄褂媚诖娴龋蝗绻峭庠谔跫拗疲蛴胪獠棵枪低ㄎ侍? ,共同优化等等 。
压力测试,win7下loadrunner 监控linux下的mysql,怎么操作?。?/h2>LR只是模拟用户和服务器进行交互,你要监控服务器上数据库的情况 , 应该在LR跑批时在服务器上用数据库监控工具收集,mysql我不太清楚,好像有个Spotlight什么的,oracle的话用awr,另外linux上的系统性能监控工具可以用nmon
如何使用MySQL自带的性能压力测试工具mysqlslap首先mysql/bin 目录里应该有mysqlslap.exe,我的版本是 5.5.11,里面是有这玩意的 在执行之前需要在mysql里建一个mysqlslap的database use mysqlslap 然后建表news,classify输数据... 在命令行里输入: C:\Program Files\MySQL\MySQL Server 5.5\...
mysql怎么做并发测试压力测试不是一次并发的数多就说明性能好的,而是要求并发数多并且持续运行一段时间后仍然没有出错 , 这样测试的结果才有意义的!所以你应该设置持续运行的时间,不然测试的结果不准确的 。
【mysql压力测试怎么做 sql压力测试工具】关于mysql压力测试怎么做和sql压力测试工具的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读