sysbench下载与交叉编译

简介

sysbench是一个开源的多线程性能测试工具,广泛用于评估系统、数据库和硬件的性能。它支持多种测试模式,如 CPU、内存、磁盘 I/O 和数据库基准测试等。

下载

git clone https://gitee.com/cn-loongson/sysbench.git

这里使用国内的源,github上也有,不过有时候会下载不下来或下载很慢。

编译

cd sysbench/

 ./autogen.sh

报错:

autoreconf: running: /usr/bin/autoconf
configure.ac:61: error: possibly undefined macro: AC_PROG_LIBTOOL
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1

解决方法:

apt-get install libtool

./configure --build=aarch64-unknown-linux-gnu --without-mysql --without-pgsql

配置可以根据自己的测试需求进行配置,配置脚本执行报错的话,只需要安装对应的库或者工具即可

上命令执行完,打印以下信息:

===============================================================================
sysbench version   : 1.1.0-5657d59
CC                 : gcc
CFLAGS             : -O3 -funroll-loops  -Wall -Wextra -Wpointer-arith -Wbad-function-cast -Wstrict-prototypes -Wnested-externs -Wno-format-zero-length -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wcast-align -Wvla   -pthread
CPPFLAGS           : -D_GNU_SOURCE  -DCK_MD_CACHELINE=128  -I$(top_srcdir)/src -I$(abs_top_builddir)/third_party/luajit/inc -I$(abs_top_builddir)/third_party/concurrency_kit/include
LDFLAGS            :
LIBS               : -lm

prefix             : /usr/local
bindir             : ${prefix}/bin
libexecdir         : ${prefix}/libexec
mandir             : ${prefix}/share/man
datadir            : ${prefix}/share

MySQL support      : no
PostgreSQL support : no

LuaJIT             : bundled
LUAJIT_CFLAGS      : -I$(abs_top_builddir)/third_party/luajit/inc
LUAJIT_LIBS        : $(abs_top_builddir)/third_party/luajit/lib/libluajit-5.1.a -ldl
LUAJIT_LDFLAGS     : -rdynamic

Concurrency Kit    : bundled
CK_CFLAGS          : -I$(abs_top_builddir)/third_party/concurrency_kit/include
CK_LIBS            : $(abs_top_builddir)/third_party/concurrency_kit/lib/libck.a
configure flags    :
===============================================================================
 

make

编译完成后,生成的可执行文件在/src文件下

file src/sysbench

src/sysbench: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=3adb0c4da4117bf6b5cb973fe51ef2883dee634c, not stripped

测试

 将可执行文件 sysbench push到目标设备中测试。

遗留问题

/bin/sh: ./sysbench: not executable: 64-bit ELF file

原因是:

file sysbench
sysbench: ELF shared object, 64-bit LSB x86-64, dynamic (/lib64/ld-linux-x86-64.so.2), BuildID=3adb0c4da4117bf6b5cb973fe51ef2883dee634c, not stripped

使用交叉编译

CFLAGS="-static" LDFLAGS="-static" ./configure --host=aarch64-linux-gnu --without-mysql --without-pgsql --disable-shared --enable-static
 

make

解决编译问题后,编译出的sysbench,仍是动态链接的

 file sysbench
sysbench: ELF shared object, 64-bit LSB arm64, dynamic (/lib/ld-linux-aarch64.so.1), BuildID=5ff93006a5f48209a28a7d2708ff7286b2be74bb, not stripped

不知道原因是啥?

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

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

相关文章

宏观学习笔记:GDP分析(二)

GDP分析(一)主要是介绍GDP相关的定义以及核算逻辑,本节主要介绍GDP的分析思路。GDP分析主要是2种方法:总量分析和结构分析。 1. 总量分析 1.1 数值选择 一般情况下,分析的对象都是 官方公布的GDP当季值。 1.2 趋势规…

全国-住宅区AOI数据

数据量级:54万,更新时间:2024年3月 覆盖字段: 名称,地址,经纬度,一级分类,二级分类,三级分类,默认图片,AOI围栏 数据来源于:魔行观察…

MySQL——视图(二)视图管理(7)删除视图

当视图不再需要时,可以将其删除,删除视图时,只能删除视图的定义,不会删除数据。删除一个或多个视图可以使用 DROP VIEW 语句,删除视图的基本语法格式如下所示: DROP VIEWIIE EXISTS]view_name [,view_name…

AIGC与数据分析融合,引领商业智能新变革(TOP企业实践)

AIGC与数据分析融合,引领商业智能新变革(TOP企业实践) 前言AIGC与数据分析融合 前言 在当今数字化时代,数据已成为企业发展的核心资产,而如何从海量数据中挖掘出有价值的信息,成为了企业面临的重要挑战。随…

jswebrtc 支持 SRS 的 Webrtc 播放器

WebRTC WebRTC(Web Real-Time Communication)是一项实时通讯技术,它允许网络应用或站点在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流、音频流或其他任意数据…

开放式耳机具备什么特点?2024排行前十的四款百元蓝牙耳机推荐

开放式耳机具有以下特点: 佩戴舒适: 开放式耳机通常不需要插入耳道,能减少对耳道的压迫和摩擦,长时间佩戴也不易产生闷热、疼痛或瘙痒等不适,对于耳道敏感或不喜欢入耳式耳机压迫感的人来说是很好的选择。 这类耳机…

ZBrush与Blender雕刻功能哪个更好些?

选择正确的3D软件首先会让你的创作过程更加轻松,尤其是在动画或大片电影制作方面。不同的软件提供不同的功能,并倾向于专注于特定领域,如绘画、动画或雕刻。如果你选择了适合你风格和目标的软件,你可以创作出极具创意的作品。 在…

硬件工程师笔试面试——IGBT

目录 7、IGBT(绝缘栅双极晶体管) 7.1 基础 IGBT结构引脚图 IGBT实物图 7.1.1 概念 7.1.2 结构及原理 7.1.3 IGBT的安全工作区 7.1.4 IGBT分类 7.1.5 IGBT优缺点 7.2 相关问题 7.2.1 如何提高IGBT的开关速度和效率? 7.2.2 IGBT在太阳能光伏系统中的作用是什么,它如…

决策树(Decison Tree)—有监督学习方法、概率模型、生成模型、非线性模型、非参数化模型、批量学习

定义 ID3算法 输入:训练数据集(T { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } \left\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\right\} {(x1​,y1​),(x2​,y2​),⋯,(xN​,yN​)}),特征集A阀值 ε \varepsilon ε 输…

Java代码审计篇 | ofcms系统审计思路讲解 - 篇1 | 环境搭建、路由机制

文章目录 Java代码审计篇 | ofcms系统审计思路讲解 - 篇1 | 环境搭建、路由机制1. 前言2. 项目环境搭建3. 项目路由机制3.1. 1)先搜索pom.xml文件,看看使用了什么框架3.2. 2)确定是否是spring的路由机制3.3. 3)确定自写路由机制的…

golang学习笔记05——golang协程池,怎么实现协程池?

推荐学习文档 golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学习笔记04——如何真正写好Golang代码? 协程池是一种用于高效处理任务的机制&…

面试—JavaSE

目录 面向对象三大特征 重载和重写的区别 final和static修饰符 接口和抽象类的区别 String、StringBuilder、StringBuffer的区别 面向对象三大特征 封装、继承、多态 封装 将对象的属性和方法放入到一个类中,通过访问修饰符来控制对类的访问权限 继承 继承是…

【ruby java】登陆功能/邮件发送模版240903

Rails 风格登录系统添加全面而详细的注释,解释每个部分的功能和用途。​​​​​​​​​ 详细注释,解释了每个文件和代码块的功能。以下是一些关键点的总结: 1. 控制器(Controllers): - ApplicationController: …

苏茵茵:以时尚之名,诠释品质生活

在女性追求个性化与自我表达的今天,时尚早已超越了简单的穿着打扮,它成为女性展现自我风格、彰显独特魅力的重要方式。从广泛的兴趣爱好到精心雕琢的个人风格,每一处细节都闪耀着女性对个性独特与自我表达的深切渴望。正是这股不可阻挡的潮流…

强化学习指南:训练过程与评估过程的区别

强化学习指南:训练过程与评估过程的区别 在强化学习(RL)中,训练和评估是两个截然不同但密切相关的过程。本指南将详细解释这两个过程的区别,以及如何正确实施它们。 1. 训练过程 训练是RL中最核心的部分&#xff0c…

Java 中常用内置接口函数

在 Java 8 及以后的版本中,引入了许多函数式编程的特性,其中最重要的就是内置的函数式接口。这些接口使得编写更简洁、可读性更强的代码成为可能。今天我将介绍四个常用的内置接口:Predicate、Function、Consumer 和 Supplier,并提…

static 变量和 static 函数各有什么特点?

static 关键字在 C、C 等编程语言中用于指定变量和函数的存储类型和可见性,其特点如下: static 变量 作用域: 局部静态变量:在函数内部声明,作用域限制在该函数内,但其生命周期贯穿程序整个运行过程。它只…

关于schneider施耐德140模块

SCHNEIDER 140模块是施耐德电气(Schneider Electric)公司生产的一系列工业自动化和控制产品,这些模块通常用于Quantum系列PLC(可编程逻辑控制器)系统中,以实现各种自动化和控制任务。以下是对SCHNEIDER 140…

2024.9.9 Python,有效的括号,三数之和,回溯算法解决括号生成

1.有效的括号 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。…

使用Protocol Buffers传输数据

使用 Google Protocol Buffers(ProtoBuf)与 Kafka 结合来定义和传输数据,可以确保传输数据的结构性、可扩展性和高效性。以下是一个简单的步骤指南,帮助你实现生产者和消费者。 1. 定义 ProtoBuf 消息格式 首先,你需…