Fio 的Android 移植与参数说明

前言

FIO是是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet,guasi, solarisaio 等等。

我们可以通过运行fio负载,在linux 、Windows 环境下测试磁盘的性能。
fio 官网: Fio官网传送门
Fio 源码压缩包 下载

一、移植Fio 至 Android

FIO 默认支持 Android 交叉编译,但是REDAME 上说明如何编译 Android。
因工作需要在Android平台上使用Fio,故在此文记录移植过程。
编译环境: Linux 系统: Ubuntu 16.04 Fio 版本: 2.19
运行环境: 开发板 ODROID-XU4, Android 4.4.4

1.1 建立独立运行的交叉编译器

下载 NDK NDK 传送门
我所使用的是 NDK 14b, 下载成功后解压 ,进入指定目录

cd  /android-ndk-r14b/build/tools
./make-standalone-toolchain.sh --arch=arm --platform=android-19 --install-dir=/data/NDK_ANDROID19  --toolchain=arm-linux-androideabi-4.8

note: --platform=android-19 此参数 与Android 版本有关,我所使的 Android4.4 对应 android-19
交叉编译器 安在 /data/NDK_ANDROID19 目录下

这样,就成功安装好 NDK 编译器。附加传送门 NDK交叉编译之自定义工具链

1.2 编译 fio

进入 fio 目录下

cd  fio-2.19

执行以下命令:

make V=1 UNAME=Android cross_prefix=/data/NDK_ANDROID19/bin/arm-linux-androideabi-

出现 以下errormake 出现的error
解决
error 1 :undefined reference to ‘inet_network’
engines/net.c( 316行 intfio_netio_is_multicast函数)中用了inet_network函数,而库中没有定义,所以编译出错,比较了一下inet_network与inet_addr的区别,决定将其改为inet_addr.

error 2:undefined reference to ‘__bswap_32’
原因:os.android.h 中宏定义; 但是 __bswap_16 __bswap_32 __bswap_64 没有定义define
在fio 源码工程中搜索 fio_swap16,fio_swap32,将fio_swap16,fio_swap32函数直接定义在 blktrace.c 中。

再次 执行 编译命令,

make V=1 UNAME=Android cross_prefix=/data/NDK_ANDROID19/bin/arm-linux-androideabi-

最后 make install 默认生成的 fio可执行文件 安装在 /usr/local/bin/ 目录下
然后将 生成 fio可执行文件 推送到 Android 的 /data 目录下
测试 fio 是否移植成功

./fio -h

如果 命令能够执行,并输出fio 帮助信息,说明fio 已成功移植到 Android 平台。

已经移植成功的 Fio android 可执行文件

二、FIO 参数说明

1.Fio 用法

顺序写

fio -filename=/data/fiotest -direct=1 -iodepth=1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30-runtime=1000 -group_reporting -name=mytest

说明:
在这里插入图片描述

Fio 参数 详解传送门

参考文章

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值