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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

idm软件是做什么的 IDM是啥软件 idm软件怎么下载 idm软件怎么下载

一、IDM是啥软件 IDM 是由美国 Tonec 公司开发的 Windows 软件&#xff0c;该软件最初于 2005 年发布。IDM全称Internet Download Manager&#xff0c;是一款Windows平台老牌而功能强大的下载加速器&#xff0c;专注于互联网数据下载。这款软件是一款不错的轻量级下载工具&…

【windows】Total Uninstall:一款功能强大的完全卸载软件

软件介绍 Total Uninstall是一款专业的软件卸载工具&#xff0c;旨在帮助用户彻底地清除计算机上的应用程序&#xff0c;包括与应用程序相关的所有文件和注册表项。以下是Total Uninstall的一些主要功能和特点&#xff1a; 完全卸载&#xff1a;软件可以监视应用程序的安装过程…

如何使用git上传linux下的项目!---附带每一步截图

在实际项目中&#xff0c;我们需要把自己的模块递给GitHub&#xff0c;需要别人的模块的时候拉下来&#xff0c;那么我们怎么把自己的项目递给GitHub呢&#xff1f;下面做一个总结&#xff1a; 登录GitHub 创建一个仓库 填写相关信息 项目名称是必填的&#xff0c;项目描述可以…

FPGA时钟:驱动数字逻辑的核心

一、引言 在FPGA&#xff08;现场可编程门阵列&#xff09;设计中&#xff0c;时钟信号是不可或缺的关键要素。时钟信号作为时序逻辑的心跳&#xff0c;推动着FPGA内部各个存储单元的数据流转。无论是实现复杂的逻辑运算还是处理高速数据流&#xff0c;都需要精确的时钟信号来保…

LeetCode115:不同的子序列

题目描述 给你两个字符串 s 和 t &#xff0c;统计并返回在 s 的 子序列 中 t 出现的个数&#xff0c;结果需要对 109 7 取模。 代码 /*dp[i][j]&#xff1a;以i为结尾的s中有以j为尾的t的个数递推公式&#xff1a;当s[i - 1] 与 t[j - 1]相等时&#xff0c;dp[i][j]可以有两…

利用 Scapy 库编写源路由攻击脚本

一、介绍 源路由攻击是一种网络攻击方法&#xff0c;攻击者通过利用IP数据包中的源路由选项来控制数据包的传输路径&#xff0c;从而绕过安全设备或防火墙&#xff0c;直接访问目标系统。源路由功能允许数据包的发送方指定数据包通过的路径&#xff0c;而不是由路由器根据路由…

基于物联网技术的智能家居实训教学解决方案

引言 随着信息技术的飞速发展&#xff0c;&#xff0c;物联网&#xff08;IoT&#xff09;已深入至我们生活的每一个角落&#xff0c;从智能家居、智能健康、智能交通到智慧城市&#xff0c;无所不在。物联网技术已成为推动社会进步和产业升级的重要力量。智能家居作为物联网技…

【数据结构】二叉树-堆(上)

个人主页~ 二叉树-堆 一、树的概念及结构1、概念2、相关概念3、树的表示4、树的实际应用 二、二叉树的概念和结构1、概念2、特殊二叉树3、二叉树的性质4、二叉树的存储结构&#xff08;1&#xff09;顺序存储&#xff08;2&#xff09;链式存储 三、二叉树的顺序结构以及实现1、…

QT加载CAD文件(二)LibreCAD源码编译

一、LibreCAD LibreCAD是一个开源软件&#xff0c;不用破解激活&#xff0c;可以打开编辑DXF格式的文档&#xff0c;软件大小只有二十多M&#xff0c;对于一些比较简单的图纸还是可以胜任的。本文主要讲该软件源码编译。如果了解软件的基本使用可以参考https://blog.csdn.net/…

申请的商标名称相同或近似,如何解决!

最近遇到一些首次申请注册商标的主体&#xff0c;基本想的名称都是两个字或或者两个字加通用词&#xff0c;还有用的行业描述词或缺乏显著特征词&#xff0c;这样去申请注册商标&#xff0c;普推知产老杨分析这样去直接申请注册大概率驳回。 两个字基本上注册的差不多了&#…

介绍Django Ninja框架

文章目录 安装快速开始特性详解自动文档生成定义请求和响应模型异步支持中间件支持测试客户端 结论 Django Ninja是一个基于Python的快速API开发框架&#xff0c;它结合了Django和FastAPI的优点&#xff0c;提供了简单易用的方式来构建高性能的Web API。 安装 使用以下命令安…

IC618 虚拟机 EDA Calibre2019 Hspice2018 Spectre19.1

虚拟机包含 CentOS 7.9 Cadence IC618 Calibre 2019 Hspice 2018 Spectre19.1 下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1aMtPO2G5ad-x5BtIJjCDig?pwdxcii 提取码&#xff1a;xcii

【Game】Rumble Heroes

文章目录 1 英雄2 守护兽3 符文4 祝福5 阵容推荐6 Boss7 兑换码 1 英雄 &#xff08;1&#xff09;力量 神话英雄 圣骑士-乌瑟尔 传说英雄 双刀-宫本武藏死亡骑士-阿萨斯冰霜骑士-亚瑟疾风焰刃-缘壹熊猫武僧-阿宝 史诗英雄 大剑-克劳德狂战士-奎托斯魔山-克里刚猎人-奈辛瓦里 稀…

行为设计模式之状态模式

文章目录 概述定义结构图 2.代码示例小结 概述 定义 状态模式(state pattern)的定义: 允许一个对象在其内部状态改变时改变它的行为。 对象看起来似乎修改了它的类。 状态模式就是用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题.。状态模式将一个对象的状态…

翻译《Use FILE_SHARE_DELETE in your shell extension》

在写 《翻译《The Old New Thing》- What did MakeProcInstance do?》 文章时&#xff0c;了解到了 Michael Geary &#xff0c;他也有不少优秀的技术文章&#xff0c;现翻译一篇关于文件操作的细节的文章 原文 Use FILE_SHARE_DELETE in your shell extension | mg.tohttps:…

水电智能抄表是什么?

1.简述&#xff1a;水电智能抄表的兴起 水电智能抄表系统是现代科学技术和传统公共文化服务相结合的产物&#xff0c;它通过自动化技术性改变了传统的人工抄表方式&#xff0c;大大提高了高效率&#xff0c;降低生产成本&#xff0c;同时也为用户提供了更为贴心的服务。这一新…

5月28(信息差)

&#x1f30d; 胖东来“改造”永辉超市 细则公布 胖东来“改造”永辉超市 细则公布&#xff01; &#x1f384;在 Windows 下玩转多媒体处理框架 BMF https://juejin.cn/post/7371640570421755913 ✨四川&#xff1a;将人工智能作为一号创新工程&#xff0c;加快突破一批原…

kubeadm引导欧拉系统高可用的K8S1.28.X

文章目录 一. 核心组件架构二. 有状态与无状态应用三. 资源对象3.1 规约与状态3.2 资源的分类-元数据,集群,命名空间3.2.1 元数据3.2.2 集群资源 3.3 命名空间级3.3.1 pod3.3.2 pod-副本集3.3.3 pod-控制器 四. Kubeadm安装k8s集群4.1 初始操作4.2 ~~所有节点安装Docker&#x…

vue3中的toRaw API

文章目录 什么是toRaw API&#xff1f;为什么需要toRaw&#xff1f;如何使用toRaw&#xff1f;实际应用场景 这两天在写项目的时候&#xff0c;发现了一个之前没用过的api&#xff0c;于是上网查了一下&#xff0c;发现这个api还是挺常用&#xff0c;所以在这记录一下 什么是t…