正文
sysbench的简单学习-编译与安装
摘要
github上面获取一下最新版本
https://github.com/akopytov/sysbench
注意现在 2023.2.17 最新版是 sysbench 1.0.20
我这边也是下载了这版本, 我准备使用 pgsql和mysql两种
主要进行arm和x86的编译.
编译前事项
这些是 github 官网上面的介绍文档.
发现pgsql的是可以用的
但是mysql的存在问题. 可能是跟mariadb有关系.
所以mysql的我单独进行了安装和处理.
yum -y install make automake libtool pkgconfig libaio-devel
# For MySQL support, replace with mysql-devel on RHEL/CentOS 5
yum -y install mysql-devel openssl-devel
# For PostgreSQL support
yum -y install postgresql-devel
编译前事项
前往mysql官网下载mysql的rpm包
比如我这里下载了两个:
mysql-8.0.21-1.el8.x86_64.rpm-bundle.tar
mysql-8.0.30-1.el8.aarch64.rpm-bundle.tar
之所以选这两个版本, 是因为我只有这两个版本
解压缩然后 yum localinstall *.rpm -y 就可以了.
需要注意 如果有mariadb的话需要首先移除
yum remove mariadb* -y
build and install
Build and Install
./autogen.sh
# Add --with-pgsql to build with PostgreSQL support
./configure
make -j
make install
The above will build sysbench with MySQL support by default.
If you have MySQL headers and libraries in non-standard locations
(and no mysql_config can be found in the PATH), you can specify
them explicitly with --with-mysql-includes and --with-mysql-libs options to ./configure.
To compile sysbench without MySQL support, use --without-mysql.
If no database drivers are available database-related scripts will not work,
but other benchmarks will be functional.
编译与安装
第一
./autogen.sh
注意这一步会生成对应的配置文件.
x86海光耗时:
real 0m4.952s
user 0m4.677s
sys 0m0.361s
arm飞腾耗时:
real 0m9.345s
user 0m8.645s
sys 0m1.080s
第二
./configure -with-pgsql --with-mysql --prefix=/sysbench1.0.20
x86海光耗时:
real 0m14.492s
user 0m12.089s
sys 0m3.973s
arm飞腾耗时:
real 0m10.167s
user 0m8.663s
sys 0m1.892s
第三
make && make install
x86海光耗时:
real 2m14.387s
user 2m10.973s
sys 0m3.357s
arm飞腾耗时:
real 1m24.578s
user 1m20.427s
sys 0m4.231s
简单迁移安装
其实发现带着 -with-mysql 的方式
需要自带一个 mysql的client的库信息
如果仅仅是把 sysbench的二进制复制的话命令是无法执行的.
这里想了一个比较简单的办法进行处理
在不同架构的环境里面下载对应的mysql client文件
libmysqlclient.so.21
可以放到bin目录的上级目录比如设置一个
lib 目录
在执行sysbench命令之前, 可以添加一下处理
注意需要在 sysbench 对应的bin目录下执行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../lib
然后执行./sysbench 就可以执行相关的二进制了.