sysbench安装(在线离线)

简介

    sysbench是一个多线程基准测试工具,它支持硬件(CPU、内存、I/O)、数据库基准压测等2种测试手段,用于评估系统的基本性能。本篇文章主要介绍sysbench在线和离线2种安装方法,并将离线编译时发生的异常记录到FAQ,当编译发生异常时可以看看最后的目录3.FAQ

        

文章目录如下

1. 在线安装sysbench

1.1. 安装依赖

1.2. 在线快速安装

2. 离线安装sysbench

2.1. 离线包下载

① GitHub仓库下载

② 软件包平台下载

2.2. 离线安装步骤

① 生成配置文件

② 配置数据库信息

③ make编译

④ 配置环境变量

3. FAQ(离线安装)

3.1. autoreconf 未找到命令

3.2. make编译时,致命错误:libpq-fe.h

3.3. 安装postgresql-devel时无法验证pgdg-common

3.4. 安装postgresql-devel时冲突


        

1. 在线安装sysbench

sysbench文档安装说明

在Linux上下载和安装sysbench的最简单方法是使用托管的二进制包存储库。包地址:

https://packagecloud.io

在每次sysbench发布时自动更新,目前可以使用x86_64、i386和aarch64二进制文件。

1.1. 安装依赖

Debian/Ubuntu系统

# 编译必需依赖
apt -y install make automake libtool pkg-config libaio-dev# 编译MySQL必需依赖
apt -y install libmysqlclient-dev libssl-dev
# 编译PostgreSQL必需依赖
apt -y install libpq-dev

        

RHEL/CentOS系统

# 编译必需依赖
yum -y install make automake libtool pkgconfig libaio-devel# 编译MySQL必需依赖, 在RHEL/CentoS 5上替换为mysql-devel
yum -y install mariadb-devel openssl-devel
# 编译PostgreSQL必需依赖
yum -y install postgresql-devel

        

Fedora系统

# 编译必需依赖
dnf -y install make automake libtool pkgconfig libaio-devel# 编译MySQL必需依赖
dnf -y install mariadb-devel openssl-devel
# 编译PostgreSQL必需依赖
dnf -y install postgresql-devel

        

macOS系统

  • 如果已经安装了Xcode(或Xcode命令行工具)和Homebrew,可以直接执行
# 编译必需依赖
brew install automake libtool openssl pkg-config# 编译MySQL必需依赖
brew install mysql
# 编译PostgreSQL必需依赖
brew install postgresql# openssl没有被Homebrew链接,为了避免“ld: library not found for -lssl”错误,需要执行
export LDFLAGS=-L/usr/local/opt/openssl/lib

        

1.2. 在线快速安装

  • 根据不同系统可直接使用shell执行

Debian/Ubuntu(shell)

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

         

RHEL/CentOS(shell)

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

         

Fedora(shell)

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

         

Arch Linux(shell)

sudo pacman -Suy sysbench

         

macOS(shell)

  • 在macOS上,最新的sysbench包可以从Homebrew获得
# 如果是编译PostgreSQL,需要添加 --with-postgresql
brew install sysbench

         

Windows

  • 从sysbench 1.0开始,对本机Windows构建的支持就被取消,可能会在以后的版本中重新引入。目前,在windows上获取sysbench的推荐方法是使用
# Windows 10
https://msdn.microsoft.com/en-us/commandline/wsl/about

        

2. 离线安装sysbench

2.1. 离线包下载

  • 这里提供了2种离线下载方式,任选其一即可。

① GitHub仓库下载

sysbench下载地址

https://github.com/akopytov/sysbench

        

② 软件包平台下载

安装包地址

https://packagecloud.io/akopytov/sysbench

        

sysbench安装说明地址

https://packagecloud.io/akopytov/sysbench/install

        

2.2. 离线安装步骤

将下载的 sysbench 包传入 Linux 系统,基本步骤为:

  1. ./autogen.sh(生成配置文件)
  2. ./configure(根据数据库生成Makefile)
  3. make(编译)

① 生成配置文件

进入 sysbench 目录,该目录下包含 autogen.sh 文件

执行这个文件即可

./autogen.sh

出现异常参考《目录3.FAQ》 

         

② 配置数据库信息

执行 autogen.sh 后会生成 configure 文件,这个文件就是用于配置数据库信息,生成Makefile的文件。参数说明如下:

./configure--prefix=<sysbench安装路径>  # 默认/usr/local/lib--with-<编译数据库>          # 默认MySQL(--with-mysql),其他支持PostgreSQL(--with-pgsql)[--without-mysql]           # 取消对MySQL的默认,使用PG编译时使用该参数--with-<编译数据库>-includes=<路径>  # 指定数据库安装路径--with-<编译数据库>-libs=<路径>      # 指定数据库库路径

        

以KingbaseES数据库举例(基于PG研发的产品,使用PG的编译方法):

./configure \
--prefix=/home/yt/sysbench \
--with-pgsql \
--without-mysql \
--with-pgsql-includes=/home/yt/kingbase \
--with-pgsql-libs=/home/yt/kingbase/lib

..........................

        

MySQL编译方法:

./configure --prefix=<sysbench安装路径> --with-mysql-includes=<数据库路径> --with-mysql-libs=<数据库库路径>

PostgreSQL编译方法:

./configure --prefix=<sysbench安装路径> --with-pgsql --without-mysql --with-pgsql-includes=<数据库路径> --with-pgsql-libs=<数据库库路径>

    sysbench编译手册中只写了能够编译MySQL或PostgreSQL,并没有提到Oracle、SQL server之类的数据库,不确定这两种数据库能否编译。但从理论上来说,基于MySQL或PostgreSQL代码研发的数据库都可以使用。比如基于PostgreSQL研发的国产数据库:华为GaussDB、人大金仓KingBase 等都可以使用pg的编译方式来编译。

        

③ make编译

完成configure配置后运行make编译即可

make -j && make install

..................

出现异常参考《目录3.FAQ》  

        

编译完成后会根据 ./configure 配置的安装路径生成如下2个目录:

  • bin:sysbench执行文件
  • share:sysbench数据库脚本文件

需要注意:如果配置的安装信息在原本源码包目录(/home/yt/sysbench-master),那么sysbench执行文件将会生成在 src/ 下面,数据库脚本文件将在 src/lua/ 下面,并且配置环境变量后执行数据库压测必须在 /home/yt/sysbench-master 下才能找到压测脚本。

        

④ 配置环境变量

配置环境变量的目的是为了方便执行sysbench,所以只需要将 sysbench 执行文件配置到 PATH 即可。vim ~/.bashrc

export PATH=/home/yt/sysbench/bin:${PATH}

或者

export PATH=/home/yt/sysbench-master/src:${PATH}

source ~/.bashrc 生效,或者重新ssh连接生效

        

3. FAQ(离线安装)

3.1. autoreconf 未找到命令

当执行 autogen.sh 如果出现找不到 autoreconf 命令,说明缺少依赖

Debian或Ubuntu系统执行apt命令下载依赖

apt-get -y install autoconf automake libtool

Red Hat或CentOS系统执行yum命令下载依赖

yum -y install autoconf automake libtool

依赖下载完成后重新执行 autogen.sh 即可

        

3.2. make编译时,致命错误:libpq-fe.h

drv_pgsql.c:30:22: 致命错误:libpq-fe.h:没有那个文件或目录

由于我这里是通过PG的方式编译,所以这种情况就是系统缺少PostgreSQL依赖。以CentOS为例下载依赖即可

yum -y install postgresql-devel

安装依赖后重新make编译即可

        

Debian/Ubuntu系统使用 apt 安装依赖

安装 MySQL 依赖

apt -y install libmysqlclient-dev libssl-dev

安装 PostgreSQL 依赖

apt -y install libpq-dev

RHEL/CentOS系统使用 yum 安装依赖

安装 MySQL 依赖

yum -y install mariadb-devel openssl-devel

安装 PostgreSQL 依赖

yum -y install postgresql-devel

Fedora系统使用 dnf 安装依赖

安装 MySQL 依赖

dnf -y install mariadb-devel openssl-devel

安装 PostgreSQL 依赖

dnf -y install postgresql-devel

        

3.3. 安装postgresql-devel时无法验证pgdg-common

pgdg-common/7/x86_64/signature                                                                                                                |  665 B  00:00:00
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG 检索密钥
导入 GPG key 0x442DF0F8:
 用户ID     : "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"
 指纹       : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
 软件包     : pgdg-redhat-repo-42.0-32.noarch (@/pgdg-redhat-repo-latest.noarch)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg-common/7/x86_64/signature                                                                                                                | 2.9 kB  00:00:00 !!!
https://download.postgresql.org/pub/repos/yum/common/redhat/rhel-7-x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for pgdg-common
正在尝试其它镜像。

【解决方法】PG的依赖不够,通过PG官网给的yum源下载依赖

yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

下载完成后重新安装 postgresql-devel

        

3.4. 安装postgresql-devel时冲突

Transaction check error:
  file /usr/lib64/libpq.so.5 from install of postgresql-libs-9.2.24-9.el7_9.x86_64 conflicts with file from package libpq5-15.3-42.1PGDG.rhel7.x86_64
  file /usr/lib64/libpq.so from install of postgresql-devel-9.2.24-9.el7_9.x86_64 conflicts with file from package libpq5-15.3-42.1PGDG.rhel7.x86_64

【解决方法】卸载 libpq5-15.3-42.1PGDG.rhel7.x86_64 即可

# 查看
rpm -qa | grep "libpq5-15.3-42.1PGDG.rhel7.x86_64"
# 卸载
sudo rpm -e libpq5-15.3-42.1PGDG.rhel7.x86_64

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/18424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Filebeat进阶指南:核心架构与功能组件的深度剖析

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《洞察之眼&#xff1a;ELK监控与可视化》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、什么是ELK 2、FileBeat在ELK中的角色 二、Fil…

触摸屏是输入设备还是输出设备?

从功能上讲&#xff0c;触摸屏理应属于输入设备&#xff0c;之所以有很多用户会误会它是输出设备&#xff0c;是因为将其与“触摸显示屏”搞混了&#xff0c;以手机屏幕为例&#xff0c;它并不是单层屏幕&#xff0c;而是有多个不同功能和作用组成的集成屏&#xff0c;这类带有…

c++大作业 调整字幕的时间

作业及其需求 有时候人们能够下载一些感兴趣的视频但是发现并没有字幕,到字幕网站上查找到字幕文件,但是发现时间进度上不能完美配合,一个视频数据的例子来源于链接: BBC.巴塔哥尼亚:地球秘密乐园 https://www.aliyundrive.com/s/LmF2sgrQzMu/folder/612af030c6fa4bf4b7c…

HCIP的学习(24)

第七章&#xff0c;VLAN—虚拟局域网 ​ 通过在交换机上部署VLAN技术&#xff0c;将一个规模较大的广播域在逻辑上划分成若干个不同的、规模较小的广播域。 ​ IEEE 802.1Q标准----虚拟桥接局域网标准----Dot1Q标准 标签协议标识符&#xff1a;0x8011&#xff08;代表数据帧是8…

前端 JS 经典:浏览器中 ESModule 的工作原理

前言&#xff1a;在开发中&#xff0c;我们经常写出如下代码。这就是 ES 模块化。那浏览器是如何运行的&#xff0c;它的运作机制到底是怎么样的呢。 在 index.html 导入 main.js <script src"./main.js" type"module"></script> 在 main.j…

广西教育杂志社与广西教育编辑部

【广西教育】期刊咨询电话&#xff1a;18366155179 咨询电话&#xff1a;18366155179编辑部----论文投稿---【广西教育】杂志编辑部--期刊发表---【广西教育】编辑期刊出刊--【广西教育】在线咨询---编辑QQ&#xff1a;1529962369 【广西教育】----在线投稿QQ&#xff1a;26480…

【文献阅读】移动边缘计算中基于CNN模型分割的计算适配和负载均衡研究_黄煜

论文原链接&#xff1a;移动边缘计算中基于CNN模型分割的计算适配和负载均衡研究 缩写词 MEC&#xff1a;移动边缘计算&#xff1b; CNN&#xff1a;卷积神经网络&#xff1b; QoE&#xff1a;体验质量&#xff1b; LB&#xff1a;负载均衡&#xff1b; ITM&#xff1a;反变换…

DM8启动报错:全局参数非法

问题描述 开发让把数据库启动下&#xff0c;启动后输入如下报错&#xff1a; 字面意思的报错就是参数非法&#xff0c;推测是有人改参数没改对&#xff0c;可是和开发沟通没人改参数。 --查看进程 [roottopnet31 ~]# ps -ef | grep dmserver dmdba 34732 1 1 5月27 …

K8s service 进阶

文章目录 K8s service 进阶Service 工作逻辑Service 具体实现Service 资源类型ClusterIPNodePortLoadBalancerExternalName Service 与 EndpointEndpoint 与 容器探针自定义Endpoint Service 相关字段sessionAffinityexternalTrafficPolicyinternalTrafficPolicypublishNotRead…

异构图上的连接预测二

异构图上的连接预测二 对整个大图进行transform处理获取批次子图定义GNN网络定义分类器&#xff1a;整合模型。开始训练&#xff1a; 对整个大图进行transform处理 详细描述过程都在代码中体现。 transform T.RandomLinkSplit(num_val0.1, # 10%的 边 作为验证集&#xff0c…

Python怎么实现动态的方法调用?比如Ruby就有元编程

在Python中&#xff0c;你可以使用getattr函数来实现动态的方法调用&#xff0c;这与Ruby中的元编程类似。getattr函数用于获取对象&#xff08;如模块、类、实例等&#xff09;的属性&#xff0c;如果属性是一个方法&#xff0c;那么你可以像调用普通方法一样调用它。 以下是一…

cfa三级大神复习经验分享系列(三)

怎么才能通过考试&#xff1f;   很简单----努力&#xff01; 第一&#xff1a;要熟   书看得再多&#xff0c;知识点掌握得再全面&#xff0c;最终是在考试中体现出来。光看书不行&#xff1b;只是看懂了不行&#xff1b;看懂了&#xff0c;记不住不行&#xff1b;记住了…

Chisel入门——在windows下vscode搭建|部署Scala2.13.3开发环境|用Chisel点亮FPGA小灯

文章目录 前言一、vscode搭建scala开发环境1.1 安装Scala官方插件Scala Syntax1.2 创建hello_world.scala文件1.3 确认java的版本(博主使用的是1.8)1.4 下载Scala Windows版本的二进制文件1.5 配置环境变量1.6 交互模式测试一下1.7 vscode运行scala 二、windows安装sbt2.1 下载…

全屏后 element-ui 组件不显示

文章目录 问题分析ElementUI 解决方案ElementPlus 解决方案 注意 问题 上篇我们说到如何 将 DIV 全屏展示 在使用将页面中指定的 DIV 全屏展示后&#xff0c;出现全屏后 element-ui 组件不显示&#xff0c;全屏后展示的提示信息是没有的&#xff0c;如下如所示&#xff1a; 全…

【linux自动化实践】linux shell 脚本 替换某文本

在Linux shell脚本中&#xff0c;可以使用sed命令来替换文本。以下是一个基本的例子&#xff0c;它将在文件example.txt中查找文本old_text并将其替换为new_text sed -i s/old_text/new_text/g example.txt解释&#xff1a; sed: 是stream editor的缩写&#xff0c;用于处理文…

Docker 入门版

目录 1. 关于Docker 2. Dockr run命令中常见参数解读 3. Docker常见命令 4. Docker 数据卷 5. Docker本地目录挂载 6. 自定义镜像 Dockerfile 语法 自定义镜像模板 Demo 7. Docker网络 1. 关于Docker 在docker里面下载东西&#xff0c;就是相当于绿色面安装板&#x…

Android ViewPager2 + FragmentStateAdapter 的使用以及问题

场景介绍&#xff1a;在Android业务功能开发的过程中&#xff0c;需要使用到嵌套ViewPage2实现页面切换&#xff0c;这种场景在我们的开发过程中并不少见&#xff0c;大致结构为一个activity包含一个viewPage2&#xff0c;这个viewPage2中存在一个fragment A&#xff0c;fragme…

视频智能分析平台LntonAIServer视频监控管理平台裸土检测算法的重要性与应用

随着科技的飞速发展&#xff0c;人工智能技术在各个领域的应用越来越广泛。其中&#xff0c;LntonAIServer裸土检测算法作为一种先进的技术手段&#xff0c;已经在农业、环境保护等领域取得了显著的成果。本文将探讨LntonAIServer裸土检测算法的重要性及其在实际应用中的优势。…

go语言中的一个优雅的冥等补偿算法 backoff - 业务逻辑重试示例

今天给大家介绍一个go语言里面的冥等补偿算法库 backoff&#xff0c; 他可以用来对我们需要冥等补偿的业务逻辑进行重试&#xff0c;我们可以设定一个最大间隔时间&#xff0c; 停止时间等重试规则&#xff0c;废话不多说直接三示例&#xff1a; 业务逻辑重试示例 exp : backo…

使用js实用工具库lodash做对象的深拷贝

const lodash require(lodash)let obj {user: {name: xutongbao}}let objCopy lodash.cloneDeep(obj)objCopy.user.name xuconsole.log(obj)console.log(objCopy)https://www.lodashjs.com/ 人工智能学习网站 https://chat.xutongbao.top 参考链接&#xff1a; https://…