NewSQL数据库压力测试工具系列——Sysbench

      数据库是企业应用系统的重要基础支撑软件,企业在进行技术选型的时候都是格外慎重的,需要综合考虑多个方面,此外还需要做多种层次的测试。前面的一系列文章跟大家介绍了分布式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) 安装方法

   下载sysbench软件包:

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 install之后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

 

你可能感兴趣的:(NewSQL数据库测试)