【SysBench】Linux 安装 sysbench-1.20

安装目的是为了对 MySQL 8.0.xPostgreSQL 进行基准测试。

0、sysbench 简介

sysbench 是一个可编写脚本的多线程基准测试工具,基于

LuaJIT 。 它最常用于数据库基准测试,但也可以

用于创建任意不涉及数据库服务器的复杂工作负载。

sysbench 附带以下捆绑基准测试:

  • oltp_*.lua: 一组类-OLTP 的数据库基准测试
  • fileio: 文件系统级基准测试
  • cpu: 简单的CPU基准测试
  • memory: 内存访问基准测试
  • threads: 基于线程的调度器基准测试
  • mutex: POSIX 互斥(量)基准测试

特性

  • 提供了有关速率和延迟的大量统计信息,包括
    延迟百分比和直方图;
  • 即使有数千个并发线程,开销也很低。sysbench 能够每秒生成和跟踪数亿个事件;
  • 通过在用户提供的 Lua 脚本中实现预定义的钩子(hook),可以容易地创建新的基准;
  • 也可以用作通用 Lua 解释器,只需在脚本中替换 #!/usr/bin/lua#!/usr/bin/sysbench

1、二进制包安装

在 Linux 上下载和安装 sysbench 最简单的方法是使用

托管的二进制包存储库 packagecloud 。存储库是在每个 sysbench 版本上自动更新。目前为 x86_64i386aarch64 二进制文件可用。

RHEL/CentOS:

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

2、源码安装

2.1 前置条件

在安装 sysbench 源码前需要安装一些必需的工具包。

bash 复制代码
yum -y install make automake libtool pkgconfig libaio-devel
# For MySQL support, replace with mysql-devel on RHEL/CentOS 5
yum -y install mysql-community-devel.x86_64 openssl-devel
# For PostgreSQL support
yum -y install postgresql-devel

如果长时间未更新 MySQL ,安装 mysql-community-devel 包时可能会出现 gpg 警告与报错。笔者所用的这台虚拟机就遇到了。参考 解决【获取 GPG 密钥失败:"Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022"】 解决。

2.2 编译 SysBench

bash 复制代码
./autogen.sh
# Add --with-pgsql to build with PostgreSQL support
./configure --with-pgsql
make -j
make install

安装后 sysbench 的二进制可执行文件默认位于 /usr/local/bin/sysbench ,脚本目录位于 /usr/local/share/sysbench 。可通过如下命令查看:

bash 复制代码
which sysbench
# 或 whereis sysbench
find / -name sysbench

3、验证安装

bash 复制代码
sysbench --version

如下图所示显示版本号即安装成功。


下一篇将介绍如何使用 sysbench 完成 CPU、I/O、OLTP 等基准测试。

相关推荐
代码对我眨眼睛2 小时前
Ubuntu 系统 NVIDIA 显卡驱动自动化安装全流程
linux·ubuntu·自动化
xiong2learning2 小时前
Linux虚拟机无法使用u盘的一种可能-- 重新下载open-vm-tools + open-vm-tools-desktop解决
linux
LCG元2 小时前
实战:一次完整的网站故障排查记录(从用户访问到数据库)
linux
xuyanqiangCode2 小时前
Ubuntu二进制安装Apache Doris(2.1版本)
linux·ubuntu·apache
ALex_zry2 小时前
高并发系统渐进式改造技术调研报告:策略、架构与实战
java·运维·架构
Yue丶越2 小时前
【Python】基础语法入门(四)
linux·开发语言·python
wljt2 小时前
Docker常用命令
运维·docker·容器
木童6622 小时前
Nginx 深度解析:反向代理与负载均衡、后端Tomcat
linux·运维·nginx
CheungChunChiu2 小时前
Android 系统中的 NTP 服务器配置与选择逻辑详解
android·运维·服务器
赖small强2 小时前
【Linux 网络基础】网络通信中的组播与广播:基础概念、原理、抓包与应用
linux·网络·broadcast·组播·广播·multicast