sysbench 是一个模块化、跨平台、多线程基准测试工具,主要用于测试各种不同系统参数下的数据库负载情况。 主要包括以下几种方式的测试:CPU性能、磁盘IO性能,线程调度性能。内存分配以及传输速度和数据库性能。 下面主要使用它用来测试数据库。

sysbench github地址:https://github.com/akopytov/sysbench sysbench安装:

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
sudo yum -y install sysbench

源码安装:

Building and Installing From Source
yum -y install make automake libtool pkgconfig libaio-devel
# For MySQL support, replace with mysql-devel on RHEL/CentOS 5
yum -y install mariadb-devel openssl-devel
# For PostgreSQL support
yum -y install postgresql-devel

 ./autogen.sh
# Add --with-pgsql to build with PostgreSQL support
./configure
make -j
make install

sysbench测试过程 lua脚本位置(指定测试用例)

find / -name oltp.lua
/usr/share/sysbench/tests/include/oltp_legacy

1、数据准备阶段

# sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --oltp-test-mode=complex --mysql-table-engine=innodb --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=xxxxx --mysql-db=test --oltp_table_size=200000 --threads=4 --oltp_tables_count=5 prepare

2、数据测试阶段

# sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --oltp-test-mode=complex --mysql-table-engine=innodb --oltp_table_size=5000000 --oltp_tables_count=5 --mysql-db=test --mysql-user=root --mysql-host=localhost --mysql-password=xxxxx --time=50  --threads=4 --report-interval=1 run

--threads=4     //线程数为4 --time=50       //测试时间为50s --report-interval=1   //报告打印周期为1s,每1s打印一次

3、数据清理阶段

# sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --oltp-test-mode=complex --mysql-table-engine=innodb --oltp_tables_count=5 --oltp_table_size=200000 --mysql-db=test --mysql-user=root --mysql-host=localhost --mysql-password=xxxxx cleanup

下次再仔细分析下测试结果。