数据库是企业应用系统的重要基础支撑软件,企业在进行技术选型的时候都是格外慎重的,需要综合考虑多个方面,此外还需要做多种层次的测试。前面的一系列文章跟大家介绍了分布式NewSQL数据库领域的两个典型产品——TiDB和CockroachDB,大家可以通过一些负载测试来考察他们的性能表现。从本文开始,向大家介绍几个常见的数据库测试方法,包括:sysbench、TPCC、ycsb和一个模拟银行转账示例测试程序。大家可以根据自己的情况进行选择。本文先介绍如何使用sysbench对TiDB和CockroachDB进行压力测试。
1. sysbench简介
Sysbech使一个流行的开源性能基准测试工具,支持并发多线程,支持多种主流数据库(MySQL、PostgreSQL、Oracle等)。它是很常用的性能测试工具,主要包括以下几种测试:
- cpu性能
- 磁盘io性能
- 调度程序性能
- 内存分配及传输速度
- POSIX线程性能
- 数据库性能(比如:OLTP基准测试)
本文只介绍针对数据库的性能测试,下面将向大家介绍sysbench的安装部署方法以及针对TiDB和CockroachDB的测试方法示例。本文只是抛砖引玉,对于sysbech的很多详细介绍还需要大家百度或google以便进一步深入学习(后面的参考给定的链接,大家可以参考)。
2. 安装
(1) 环境说明
本文示例假环境如下:
操作系统:CentOS 7.4
sysbench:1.0.14
TiDB:2.0.x或2.1.x
CockroachDB:2.0.x或2.1.x
说明:需要检查操作系统是否已经安装了必要的包:make、 automake、 libtool、 pkgconfig、 libaio-devel
对于mysql,需要安装mysql-community-devel包;对于postgresql需要安装postgresql-devel包
(2) 安装方法
下载sysben软件包:
https://github.com/akopytov/sysbench/archive/1.0.14.tar.gz
解压软件包:
tar xvfz 1.0.14.tar.gz
然后进入解压目录,执行
./autogen.sh
./configure
./configure --with-pgsql
make -j
make install
说明:假设最终解压后的目录是/home/bechmark/sysbench-1.0.14。make instal之后sysbench可运行程序被安装到/usr/local/bin目录下。
3. 运行测试
(1) prepare(准备测试数据)
--mysql/tidb
sysbench --test=./tests/include/oltp_legacy/oltp.lua --mysql-db=test --mysql-user=root --mysql-host=192.168.13.171 --mysql-port=4000 --oltp-tables-count=3 --oltp-table-size=100000 prepare
--postgresql/cockroachdb
sysbench --test=./tests/include/oltp_legacy/oltp.lua --pgsql-db=tpcc --pgsql-user=root --pgsql-host=192.168.13.171 --pgsql-port=26257 --oltp-tables-count=3 --oltp-table-size=100000 --db-driver=pgsql prepare
(2) run(加压测试)
--mysql/tidb
sysbench --test=/usr/local/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-db=test --mysql-user=root --mysql-host=192.168.1.161 --mysql-port=4000 --oltp-tables-count=3 --oltp-table-size=100000 --num-threads=10 --max-time=60 --report-interval=10 --oltp-read-only=off run
--postgresql/cockroachdb
sysbench --test=./tests/include/oltp_legacy/oltp.lua --pgsql-db=tpcc --pgsql-user=root --pgsql-host=192.168.13.171 --pgsql-port=26257 --oltp-tables-count=3 --oltp-table-size=100000 --num-threads=10 --max-time=60 --report-interval=10 --oltp-read-only=off run
参考:
https://github.com/akopytov/sysbench
https://www.cnblogs.com/kismetv/archive/2017/09/30/7615738.html