【HPC存储性能测试】02-ior带宽性能测试
文章目录
- 一、前言
- 二、软件安装
- 1、安装依赖
- 2、安装软件
- 三、参数说明
- 1、mpirun参数
- 2、ior参数
- 四、测试说明
一、前言
ior introduction | github hpc ior
IOR 测试工具使用 POSIX、 MPIIO 或 HDF5接口对并行文件系统进行基准测试
通常使用IOR测试工具时,一般会配合使用MPI程序通过多节点并行测试文件系统的带宽性能
序号 | 测试工具 | 版本号 | 发布时间 |
---|---|---|---|
1 | IOR | 2.10.3 | 2010-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
)测试结果