sysbench安装(在线离线)

news2024/11/16 11:37:41

简介

    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.coloradmin.cn/o/1711476.html

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

相关文章

LES物流执行系统,在离散制造行业有那些作用和价值?

离散制造企业往往面临的是多品种、小批量的非标订单生产&#xff0c;传统推动式物流系统已经无法应对计划变化滞后&#xff0c;各车间、工序之间难以衔接等情况&#xff0c;特别是密集劳动力的电子行业&#xff0c;非标产品 SKU 种类繁多&#xff0c;物料配送复杂&#xff0c;对…

基于C++11实现的手写线程池

在实际的项目中&#xff0c;使用线程池是非常广泛的&#xff0c;所以最近学习了线程池的开发&#xff0c;在此做一个总结。 源码&#xff1a;https://github.com/Cheeron955/Handwriting-threadpool-based-on-C-17 项目介绍 项目分为两个部分&#xff0c;在初版的时候&#x…

基于springboot+vue的社区医院管理服务系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

Numba 的 CUDA 示例(1/4):踏上并行之旅

按照本系列从头开始使用 Python 学习 CUDA 编程 介绍 GPU&#xff08;图形处理单元&#xff09;&#xff0c;顾名思义&#xff0c;最初是为计算机图形学开发的。从那时起&#xff0c;它们几乎在每个需要高计算吞吐量的领域都无处不在。这一进步得益于 GPGPU&#xff08;通用 G…

AI大模型如何“开窍”?算法、数据与架构的三重奏

一、算法创新 1. 探索新的学习范式 自监督学习&#xff1a;利用未标注数据让模型自我学习&#xff0c;提高模型的泛化能力。元学习&#xff1a;让模型学会如何学习&#xff0c;以便在不同任务之间快速迁移。强化学习&#xff1a;通过试错与奖励机制&#xff0c;使模型在与环境…

[数据集][目标检测]红外车辆检测数据集VOC+YOLO格式13979张类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;13979 标注数量(xml文件个数)&#xff1a;13979 标注数量(txt文件个数)&#xff1a;13979 标…

介绍Django Ninja框架

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

[FlareOn6]Overlong

很简单的逻辑 一度让我以为是加保护了 运行告诉我从未编码,懵逼 动调你也发现,你根本没什么可以操作的空间,密文什么的,都是固定的 但是这里大家发现没 我们只加密了28个密文 然后text是128 也就是 0x80 是不是因为密文没加密完呢 我也懒得去写代码了 汇编直接修改push 字…

没有可用软件包 docker-ce。 错误:无须任何处理

特么的各种百度查看&#xff0c;全是一些废话&#xff01;&#xff01;&#xff01;centos7安装不上docker&#xff0c;都是老的代码了&#xff1a; yum install docker-ce 解决方案&#xff1a; # CentOS yum install docker-io

Android14 WMS-窗口添加流程(一)-Client端

窗口布局在onCreate方法中通过setContentView(R.layout.xxx)加载&#xff0c;但窗口的显示并不是在wm_on_create_called中, 而是在wm_on_resume_called后&#xff0c;也就是说应用onResume时此窗口是不可见的&#xff0c;真正可见是当此window窗口的mDrawState变化状态从NO_SUR…

JVS物联网、逻辑引擎、智能BI(重构优化)5.21功能新增说明

项目介绍 JVS是企业级数字化服务构建的基础脚手架&#xff0c;主要解决企业信息化项目交付难、实施效率低、开发成本高的问题&#xff0c;采用微服务配置化的方式&#xff0c;提供了 低代码数据分析物联网的核心能力产品&#xff0c;并构建了协同办公、企业常用的管理工具等&am…

AI播客下载:Acquired podcast每个公司都有一个故事

"Acquired Podcast" 是一档专注于深度解析科技行业和企业发展历程的播客节目&#xff0c;由Ben Gilbert和David Rosenthal主持。其口号是&#xff1a;Every company has a story.《Acquired》每一集都围绕一个特定的主题或公司进行讨论。它以独特的视角和深入的分析&…

数字孪生技术助力智慧园区建设

随着城市化进程的加速和科技创新的推动&#xff0c;城市面临着诸多挑战和机遇。如何提升城市的竞争力和可持续性&#xff0c;是一个亟待解决的问题。在这个背景下&#xff0c;智慧园区作为一种新型的城市发展模式&#xff0c;引起了越来越多的关注和探索。 什么是智慧园区&…

科技查新是什么?一文了解!

本文主要解答 1、什么是科技查新&#xff1f; 2、科技查新有哪些作用&#xff1f; 3、科技查新一般应用于什么地方&#xff1f; 4、在哪能出具正规查新报告&#xff1f; 5、科技查新流程是怎样的&#xff1f; 带着这些问题阅读这篇文章相信一定会有收获&#xff01;干活内…

Jetson Orin Nano v6.0 + tensorflow2.15.0+nv24.05 GPU版本安装

Jetson Orin Nano v6.0 tensorflow2.15.0nv24.05 GPU版本安装 1. 源由2. 步骤2.1 Step1&#xff1a;系统安装2.2 Step2: nvidia-jetpack安装2.3 Step3&#xff1a;jtop安装2.4 Step4&#xff1a;h5py安装2.5 Step5&#xff1a;tensorflow安装2.6 Step6&#xff1a;jupyterlab安…

Axios的使用简单说明

axios 请求方式和参数 axios 可以发送 ajax 请求&#xff0c;不同的方法可以发送不同的请求: axios.get&#xff1a;发送get请求 axios.post&#xff1a;发送post请求 axios.put&#xff1a;发送put请求 axios.delete&#xff1a;发送delete请求 无论哪种方法&#xff0c;第一…

计算机考研|408开始的晚,如何规划复习?

408开始的比较晚不用怕 只需要6个月的复习时间&#xff0c;按照我的复习计划&#xff0c;你至少可以考100这个分数 我的计划是对于基础差的考生的&#xff0c;大佬们就可以绕道了&#xff0c;对于基础差的考生来说&#xff0c;408复习的难点其实在于学好数据结构和计算机组成…

如何使用OCR批量提取短剧和电视剧内的字幕?

为什么使用光字符识别 (OCR) 提取视频字幕&#xff1f; 视频字幕提取是将视频中的字幕转换为 SRT 格式文本的过程。传统方法是使用自动语音识别 (ASR) 技术&#xff0c;但对于某些类型的视频&#xff08;例如短剧、电视剧、电影、访谈等节目&#xff09;&#xff0c;由于这类型…

代码随想录——合并二叉树(Leetcode617)

题目链接 层序遍历 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) …

C++青少年简明教程:for循环语句

C青少年简明教程&#xff1a;for循环语句 C的for循环语句是一种迭代控制语句&#xff0c;用于重复执行一段代码。 语法格式&#xff1a; for(表达式1&#xff1b;表达式2&#xff1b;表达式3) 循环体 for循环语句执行流程图&#xff1a; 不太好理解&#xff0c;请看下图&am…