【热门云产品免费试用活动】| 【最新活动】| 【企业应用优惠】
简介
sysbench是一款 开源 的多线程性能测试工具,可以执行CPU、内存、线程、IO、 数据库 等方面的性能测试
开源地址:https://github.com/akopytov/sysbench
编译和测试方式
1. 选择操作环境
本文选用华为鲲鹏 云服务 ECS KC1实例做测试
2.获取源代码
https://github.com/akopytov/sysbench/releases提供sysbench各版本的源码压缩包,可以直接下载。
3.编译源代码
本文以“sysbench-1.0.16”版本、数据库以MariaDB为例,下载源码,并编译安装。
1)安装sysbench的依赖包。
yum install gcc gcc-c++ automake make libtool -y
2)(可选)安装MariaDB数据库。
若已经安装,可跳过此步骤。
yum install mariadb-server -y
3)启动并进入数据库。
systemctl start mariadb
mysql
4) 创建 “sysuser”账户供后续测试sysbench使用。
create user 'sysuser'@'localhost' IDENTIFIED BY '123456';
flush privileges;
GRANT ALL ON *.* TO 'sysuser'@'localhost';
flush privileges;
创建账号名为“sysuser”,密码为 “123456”的账号,供后续测试sysbench使用。
5)安装sysbench的依赖包mysql-devel。
yum install mysql-devel -y
6)查询MariaDB的库文件保存路径。
mysql_config -help
记录回显信息中的“pkgincludedir”和“pkglibdir”的值,供后续步骤使用,如下面加粗部分所示。
Usage: /usr/bin/mysql_config [OPTIONS]
Options:
--cflags [-I/usr/include/mysql]
--include [-I/usr/include/mysql]
--libs [-L/usr/lib64/mysql -lmysqlclient -lpthread -lz -lm -ldl -lssl -lcrypto]
--libs_r [-L/usr/lib64/mysql -lmysqlclient -lpthread -lz -lm -ldl -lssl -lcrypto]
--plugindir [/usr/lib64/mysql/plugin]
--socket [/var/lib/mysql/mysql.sock]
--port [0]
--version [5.5.60]
--libmysqld-libs [-L/usr/lib64/mysql -lmysqld]
--variable=VAR VAR is one of:
pkgincludedir [/usr/include/mysql]
pkglibdir [/usr/lib64/mysql]
plugindir [/usr/lib64/mysql/plugin]
7)下载sysbench源码。
wget https://github.com/akopytov/sysbench/archive/1.0.16.tar.gz
8)解压并编译安装sysbench。
tar -zxvf 1.0.16.tar.gz
cd sysbench-1.0.16
./autogen.sh
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib64/mysql --with-mysql
l “/usr/include/mysql”为6中查到的“pkgincludedir”的值。
l “/usr/lib64/mysql” 为6中查到的“pkglibdir”的值。
回显信息如下,则表示生成编译文件成功。
===============================================================================
sysbench version : 1.0.16
CC : gcc -std=gnu99
CFLAGS : -O2 -funroll-loops -ggdb3 -Wall -Wextra -Wpointer-arith -Wbad-function-cast -Wstrict-prototypes -Wnest
ed-externs -Wno-format-zero-length -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
-Wcast-align -Wvla -pthread
CPPFLAGS : -D_GNU_SOURCE -DCK_MD_CACHELINE=128 -I$(top_srcdir)/src -I$(abs_top_builddir)/third_party/luajit/inc
-I$(abs_top_builddir)/third_party/concurrency_kit/include
LDFLAGS : -L/usr/local/lib
LIBS : -lm
EXTRA_LDFLAGS :
prefix : /usr/local
bindir : ${prefix}/bin
libexecdir : ${prefix}/libexec
mandir : ${prefix}/share/man
datadir : ${prefix}/share
MySQL support : yes
Drizzle support : no
AttachSQL support : no
Oracle support : no
PostgreSQL support : no
LuaJIT : bundled
LUAJIT_CFLAGS : -I$(abs_top_builddir)/third_party/luajit/inc
LUAJIT_LIBS : $(abs_top_builddir)/third_party/luajit/lib/libluajit-5.1.a -ldl
LUAJIT_LDFLAGS : -rdynamic
Concurrency Kit : bundled
CK_CFLAGS : -I$(abs_top_builddir)/third_party/concurrency_kit/include
CK_LIBS : $(abs_top_builddir)/third_party/concurrency_kit/lib/libck.a
configure flags :
===============================================================================
9)编译并安装。
make
make install
10)查询sysbench版本号。
sysbench --version
回显信息如下,则表示sysbench安装成功。
sysbench 1.0.16
测试已完成编译的软件
以MariaDB数据库为例。
1)登录MariaDB数据库。
mysql -usysuser -p123456 -hlocalhost -P3306
l “sysuser”为4.3 编译源代码中创建的帐户。
l “123456”为4.3 编译源代码中设置的“sysuser”帐户的登录密码。
回显信息如下,表示登录成功:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2212
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
2)创建sysbench测试使用的数据库“dbtest”。
create database dbtest;
show databases;
回显信息中含有数据库“dbtest”,则表示“dbtest”数据库创建成功,如加粗部分所示。
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| dbtest |
| kbe |
| mysql |
| performance_schema |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]>
3)使用sysbench准备测试数据。
sysbench /usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=localhost --mysql-port=3306 --mysql-user=sysuser --mysql-password=123456 --mysql-db=dbtest --oltp-tables-count=1 --oltp-table-size=1000 --oltp-dist-type=uniform --oltp-read-only=off --oltp-test-mode=complex --rand-init=on --db-driver=mysql --report-interval=10 --threads=1000 --time=120 prepare
回显信息如下:
sysbench 1.0.16 (using bundled LuaJIT 2.1.0-beta2)
Creating table 'sbtest1'...
Inserting 1000 records into 'sbtest1'
Creating secondary indexes on 'sbtest1'...
4)登录数据库,查看“dbtest”数据库中是否新建表“sbtest1”且表记录数为1000条。
mysql -usysuser -p123456 -hlocalhost -P3306
use dbtest;
show tables;
回显信息如下:
MariaDB [dbtest]> show tables;
+------------------+
| Tables_in_dbtest |
+------------------+
| sbtest1 |
+------------------+
1 row in set (0.01 sec)
MariaDB [dbtest]>
5)查询表“sbtest1”中的记录数,如下为1000,则表示sysbench安装成功且可正常使用。
select count(*) from sbtest1;
回显信息如下:
MariaDB [dbtest]> select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
| 1000 |
+----------+
1 row in set (0.00 sec)
MariaDB [dbtest]>
更多相关文章: