当前位置: 首页 > news >正文

【HPC存储性能测试】02-ior带宽性能测试

文章目录

    • 一、前言
    • 二、软件安装
      • 1、安装依赖
      • 2、安装软件
    • 三、参数说明
      • 1、mpirun参数
      • 2、ior参数
    • 四、测试说明

一、前言

ior introduction | github hpc ior

IOR 测试工具使用 POSIX、 MPIIO 或 HDF5接口对并行文件系统进行基准测试
通常使用IOR测试工具时,一般会配合使用MPI程序通过多节点并行测试文件系统的带宽性能

序号测试工具版本号发布时间
1IOR2.10.32010-08-02

二、软件安装

1、安装依赖

  • 配置国内镜像源
yum install wget -y
mv /etc/yum.repos.d/ /etc/yum.repos.d-bak/
mkdir /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/Centos-7.repo -P /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/epel-7.repo -P /etc/yum.repos.d/
yum makecache
  • 安装openmpi软件包
yum install openmpi openmpi-devel -y
  • 配置环境变量,添加bin环境和库环境
echo "export PATH=$PATH:/usr/lib64/openmpi/bin/" >>  /root/.bashrc
echo "export LD_LIBRARY_PATH=/usr/(local/)lib/openmpi:\$LD_LIBRARY_PATH" >> /root/.bashrc
echo "export LD_LIBRARY_PATH=/usr/(local/)lib:\$LD_LIBRARY_PATH" >> /root/.bashrc
source /root/.bashrc 

2、安装软件

  • 下载软件包源码文件
wget https://cytranet.dl.sourceforge.net/project/ior-sio/IOR%20latest/IOR-2.10.3/IOR-2.10.3.tgz --no-check-certificate
  • 软件包编译,执行完成后,会在当前文件夹下生成IOR可执行二进制文件
tar -zxvf IOR-2.10.3.tgz
cd IOR/
gmake
cd src/C/
make mpiio
  • 拷贝IOR可执行二进制文件到所有客户端mpirun命令执行路径下

三、参数说明

[ mpirun [ -allow-run-as-root ]  [ -host <host1,host2> | -hostfile <hostfile-name> ] [-np <thread-num>] [--mca btl_tcp_if_include <netcard-name>] [-mca plm_rsh_no_tree_spawn 1] ] ./IOR -b <file-size> -t <transfer-size> -w -r -g -F -e -k -B -o <file-path>

1、mpirun参数

  • -allow-run-as-root
    mpirun默认不允许使用root用户运行,如需root用户执行指令则需要加此参数
  • -host <host1,host2> | -hostfile <hostfile-name>
    mpirun指定多个客户端并行运行指令,有两种指定客户端方式
  • -host <host1,host2>:通过命令指定运行客户端,如指定node93、node94客户端运行指令,则指定配置为-host node93,node94,默认每个客户端运行线程数为1,如需指定更多线程,可以使用方式二
  • -hostfile :通过文件指定运行客户端,如指定node93、node94、node95客户端运行执行,则指定配置为-hostfile ./hosts,hosts文件信息如下,其中slots参数用于指定客户端线程数(当不指定时默认为1)
    注:线程数np与hostfile中所有节点的slots参数值之和不一定要相等,程序运行会根据hostfile文件一行行调用客户端对应线程,若前面几个客户端slots总数可以满足当前线程数需求,则后面的客户端将不会进行运行调用(参考示例如下,如线程数np为5,则只会在node93、node94运行指令)
node93 slots=1
node94 slots=4
node95 slots=4
  • np:总的线程数
  • –mca btl_tcp_if_include :指定运行指令网卡名称,如指定使用eth0网卡,则指定配置为--mca btl_tcp_if_include eth0
  • –mca plm_rsh_no_tree_spawn 1:用于配置MPI并行作业启动方式,强制使用非树形模式启动进程(每个进程直接通过rsh远程shell启动,而不是通过中间节点),可以解决在某些网络配置下启动MPI作业遇到的问题

2、ior参数

  • -b:指定每个线程写入文件大小,一般单个客户端共写入文件大小为内存的两倍,假设客户端共有n个,客户端内存为fG,此处-b=(n * f * 2)/ np
  • -t:指传输块大小,此处示例为1m(TranserSize),调优可改为2m或是4m
  • -w:指进行写测试(WriteFile)
  • -r:指进行读测试(ReadFile),与-w组合,先写后读
  • -g:intraTestBarriers – use barriers between open, write/read, and close,固定参数
  • -F:FilePerProc模式 --file-per-process,指每个线程独立写一个文件,否是所有线程都写到一个大的文件中,固定参数
  • -e:fsync --perform fsync upon POSIX write close,把写数据同步到硬盘(fsync)
  • -k:保留测试文件(KeepFile),测试完保留文件,不会删除
  • -B:用于POSIX接口,使用直接I/O,不使用I/O缓存
  • -o:指定测试文件路径(testfile),IOR在FilePerProc模式下会自动在文件后生成数据,保证每个线程写一个文件

四、测试说明

参考示例如下,将分布式存储系统目录通过posix协议挂载到3个客户端节点/mnt目录下,3个客户端节点均已安装好openmpi环境,且可正常运行IOR程序,3个客户端节点内存均为512GB

  • 客户端节点修改/home/mpihosts文件配置如下,将IOR二进制文件拷贝到/home/目录下
client1 slots=4
client2 slots=4
client3 slots=4
  • 客户端节点在/home目录下运行测试命令如下
    指定使用eth2网卡,使用3个客户端测试(每个客户端起4线程,总共12个线程,每个线程写256g文件),测试块大小为1MB,测试模型为写和读
mpirun -allow-run-as-root --mca btl_tcp_if_include eth2 --mca plm_rsh_no_tree_spawn 1 -hostfile /home/mpihosts  -np 12 ./IOR -b 256g -t 1024k -w -r -g -F -e -k -B -o /mnt/iortest
  • 执行测试完成后,记录存储系统写性能(Max Write:x MiB/sec)和读性能(Max Read:x MiB/sec)测试结果
http://www.xdnf.cn/news/178777.html

相关文章:

  • acwing532. 货币系统
  • 【操作系统原理07】输入/输出系统
  • 常用的多传感器数据融合方法
  • 安卓屏播放语音失败,报错TextToSpeech: speak failed: not bound to TTS engine
  • risc-V学习日记(4):RV32I指令集
  • 开关电源实战(六)ADDC反激电源
  • 说一下Drop与delete区别
  • 在java中实现protobuf自定义协议
  • 通过ThreadLocal存储登录用户信息
  • LeetCode每日一题4.27
  • 【HPC存储性能测试】01-OpenMPI部署
  • 深入理解指针(5)
  • 【Leetcode 每日一题】3392. 统计符合条件长度为 3 的子数组数目
  • lobechat调用ollama模型,服务连接失败
  • UE5 NDisplay 单主机打包运行
  • SaaS方兴未艾,快速稳定的访问与全面的安全防护成关键
  • 典籍查询界面增加我的收藏查询功能
  • AI 数据中心 vs 传统数据中心:从硬件架构到网络设计的全面进化
  • 0基础 | Proteus | 中断 | 点阵
  • keil 中优化等级的bug
  • 泰迪杯实战案例超深度解析:旅游景点游客流量预测与资源优化
  • Zabbix
  • 测试基础笔记第十四天
  • Java基础——排序算法
  • 底层源码和具体测试解析HotSpot JVM的notify唤醒有序性(5000字详解)
  • 优化无头浏览器流量:使用Puppeteer进行高效数据抓取的成本降低策略
  • PHP实现 Apple ID 登录的服务端验证指南
  • 现代Python打包工具链
  • Redis的阻塞
  • AI赋能智能对讲机:技术融合与行业变革的深度实践