前言
在对网站整体性能进行benchmark时,可以使用多种工具,比如大名鼎鼎的ab(Apache bench),http_load等工具。这里我们不关注他们的使用,如果你想了解,可以自行在网上找到答案。
重点来说MySQL的基准测试如何进行,也有很多种工具来供我们选择,比如mysqlslap、sysbench、Super Smack等,其中mysqlslap的使用MySQL官网给出了介绍,Super Smack是服务器压力测试强有力的工具,那么sysbench便是我们进行MySQL基准测试的很漂亮的工具了。
sysbench
sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL;
它主要包括以下几种方式的测试:
1、cpu性能
2、磁盘io性能
3、调度程序性能
4、内存分配及传输速度
5、POSIX线程性能
6、数据库性能(OLTP基准测试)
sysbench的数据库OLTP测试支持MySQL、PostgreSQL、Oracle,目前主要用于Linux操作系统,开源社区已经将sysbench移植到了Windows,并支持SQL Server的基准测试。
废话不多说,开始。
一、sysbench安装
mysql版本: mysql-community-server-5.6.29
OS: CentOS 6.7 X86_64
sysbench 0.5相比0.4版本有一些变化,包括oltp测试结合了lua脚本,还多了一些隐藏选项,本文会涉及得到一部分。
// 先安装编译依赖环境$ sudo yum install gcc gcc-c++ automake make libtool mysql-community-devel$ cd /tmp && git clone https://github.com/akopytov/sysbench.git$ cd /tmp/sysbench && ./autogen.sh$ ./configure --prefix=/usr/local/sysbench-0.5$ ./make && sudo make install// 0.5版本需要oltp.lua测试脚本// 如果是rpm包方式安装的,在 /usr/share/doc/sysbench/tests/db/ 下可找到$ cd /usr/local/sysbench && sudo mkdir -p share/tests/db$ cp /tmp/sysbench/sysbench/tests/db/*.lua share/tests/db/$ ./bin/sysbench --versionsysbench 0.5
如果需要测试PostgreSQL、Oracle,则在configure时需要加上 with-oracle
或者