Linux学习-压力测试工具sysbench
sysbench介绍
sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。
数据库目前支持MySQL/Oracle/PostgreSQL。本文只是简单演示一下几种测试的用法,后续准备利用sysbench来对MySQL进行一系列的测试。具体的一些参数设置,需要根据不同的测试要求来进行调整。
安装
一、CentOS 7安装:
1、首先:查找一下安装包,执行命令:yum search sysbench
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* epel: mirrors.aliyun.com
* extras: ap.stykers.moe
* updates: mirrors.neusoft.edu.cn
============================ N/S matched: sysbench =============================
sysbench.x86_64 : System performance benchmark
名称和简介匹配 only,使用“search all”试试。
2、其次:通过上述命令给出的安装包名称进行安装,执行命令:yum install sysbench.x86_64
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 7.2 kB 00:00
* base: mirrors.cn99.com
* epel: mirrors.yun-idc.com
* extras: ap.stykers.moe
* updates: mirrors.neusoft.edu.cn
base | 3.6 kB 00:00
epel | 5.4 kB 00:00
extras | 2.9 kB 00:00
updates | 2.9 kB 00:00
(1/2): epel/x86_64/updateinfo | 1.0 MB 00:00
(2/2): epel/x86_64/primary_db | 6.8 MB 00:01
正在解决依赖关系
--> 正在检查事务
---> 软件包 sysbench.x86_64.0.1.0.17-2.el7 将被 安装
--> 正在处理依赖关系 libck.so.0()(64bit),它被软件包 sysbench-1.0.17-2.el7.x86_64 需要
--> 正在处理依赖关系 libluajit-5.1.so.2()(64bit),它被软件包 sysbench-1.0.17-2.el7.x86_64 需要
--> 正在处理依赖关系 libpq.so.5()(64bit),它被软件包 sysbench-1.0.17-2.el7.x86_64 需要
--> 正在检查事务
---> 软件包 ck.x86_64.0.0.5.2-2.el7 将被 安装
---> 软件包 luajit.x86_64.0.2.0.4-3.el7 将被 安装
---> 软件包 postgresql-libs.x86_64.0.9.2.24-1.el7_5 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================
Package 架构 版本 源 大小
================================================================================
正在安装:
sysbench x86_64 1.0.17-2.el7 epel 152 k
为依赖而安装:
ck x86_64 0.5.2-2.el7 epel 26 k
luajit x86_64 2.0.4-3.el7 epel 343 k
postgresql-libs x86_64 9.2.24-1.el7_5 base 234 k
事务概要
================================================================================
安装 1 软件包 (+3 依赖软件包)
总下载量:755 k
安装大小:2.3 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): ck-0.5.2-2.el7.x86_64.rpm | 26 kB 00:00
(2/4): postgresql-libs-9.2.24-1.el7_5.x86_64.rpm | 234 kB 00:00
(3/4): luajit-2.0.4-3.el7.x86_64.rpm | 343 kB 00:01
(4/4): sysbench-1.0.17-2.el7.x86_64.rpm | 152 kB 00:01
--------------------------------------------------------------------------------
总计 482 kB/s | 755 kB 00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : luajit-2.0.4-3.el7.x86_64 1/4
正在安装 : postgresql-libs-9.2.24-1.el7_5.x86_64 2/4
正在安装 : ck-0.5.2-2.el7.x86_64 3/4
正在安装 : sysbench-1.0.17-2.el7.x86_64 4/4
验证中 : ck-0.5.2-2.el7.x86_64 1/4
验证中 : postgresql-libs-9.2.24-1.el7_5.x86_64 2/4
验证中 : sysbench-1.0.17-2.el7.x86_64 3/4
验证中 : luajit-2.0.4-3.el7.x86_64 4/4
已安装:
sysbench.x86_64 0:1.0.17-2.el7
作为依赖被安装:
ck.x86_64 0:0.5.2-2.el7 luajit.x86_64 0:2.0.4-3.el7
postgresql-libs.x86_64 0:9.2.24-1.el7_5
完毕!
3、最后:检查安装是否成功,执行命令:sysbench --help/sysbench -version
sysbench: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
发现报错了,意思就就是:sysbench:加载共享库时出错:libmysqlclient.so.18:无法打开共享对象文件:没有这样的文件或目录。
原因一般有两个:
一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.
另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.
4、解决办法:
首先:在根目录中查找libmysqlclient.so.18文件,检查是否存在,执行命令:find / -name libmysqlclient.so.18,没有返回,发现没有改文件,证明没有安装共享数据库。
其次:安装数据库,执行命令:yum install -y mysql-devel
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* epel: mirrors.yun-idc.com
* extras: ap.stykers.moe
* updates: mirrors.neusoft.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 mariadb-devel.x86_64.1.5.5.64-1.el7 将被 安装
--> 正在处理依赖关系 mariadb-libs(x86-64) = 1:5.5.64-1.el7,它被软件包 1:mariadb-devel-5.5.64-1.el7.x86_64 需要
--> 正在检查事务
---> 软件包 mariadb-libs.x86_64.1.5.5.60-1.el7_5 将被 升级
---> 软件包 mariadb-libs.x86_64.1.5.5.64-1.el7 将被 更新
--> 解决依赖关系完成
依赖关系解决
============================================================================================================================================================
Package 架构 版本 源 大小
============================================================================================================================================================
正在安装:
mariadb-devel x86_64 1:5.5.64-1.el7 base 755 k
为依赖而更新:
mariadb-libs x86_64 1:5.5.64-1.el7 base 759 k
事务概要
============================================================================================================================================================
安装 1 软件包
升级 ( 1 依赖软件包)
总下载量:1.5 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/2): mariadb-devel-5.5.64-1.el7.x86_64.rpm | 755 kB 00:00:00
(2/2): mariadb-libs-5.5.64-1.el7.x86_64.rpm | 759 kB 00:00:01
------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 1.1 MB/s | 1.5 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在更新 : 1:mariadb-libs-5.5.64-1.el7.x86_64 1/3
正在安装 : 1:mariadb-devel-5.5.64-1.el7.x86_64 2/3
清理 : 1:mariadb-libs-5.5.60-1.el7_5.x86_64 3/3
验证中 : 1:mariadb-devel-5.5.64-1.el7.x86_64 1/3
验证中 : 1:mariadb-libs-5.5.64-1.el7.x86_64 2/3
验证中 : 1:mariadb-libs-5.5.60-1.el7_5.x86_64 3/3
已安装:
mariadb-devel.x86_64 1:5.5.64-1.el7
作为依赖被升级:
mariadb-libs.x86_64 1:5.5.64-1.el7
完毕!
执行命令:mysql_config -help
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.64]
--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]
[root@localhost ~]# mysql_config --include
-I/usr/include/mysql
执行命令:mysql_config --libs
-L/usr/lib64/mysql -lmysqlclient -lpthread -lz -lm -ldl -lssl -lcrypto
5、再次验证,执行命令:sysbench -version
sysbench 1.0.17 (using system LuaJIT 2.0.4)
二、CentOS 6.5安装:
1. 下载安装包:sysbench-1.0.zip,地址 https://github.com/akopytov/sysbench/archive/1.0.zip
上传至服务器目录:/usr/local/src/
执行:scp -r /Users/apple/Downloads/sysbench-1.0.zip root@IP·:/usr/local/src/
2. 安装依赖库
yum install automake libtool -y
3. 开始安装
./autogen.sh
./configure
ERROR: cannot find MySQL libraries. If you want to compile with MySQL support 没找到mysql库 需要用参数指定下 --with-mysql-includes和--with-mysql-libs
./configure --with-mysql-includes=/alidata/server/mysql5.7/include/ --with-mysql-libs=/alidata/server/mysql5.7/lib/
4. 由于是yum安装的mysql,我也不知道路径在哪里。如何查找mysql的安装路径?
安装mysql-devel,才能使用mysql_config
#yum install -y mysql-devel
#mysql_config -help
mysql_config --include
mysql_config --libs
5. 再次执行config,成功
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql
make
make install
6. 执行下命令:
sysbench --help