ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

mdtest/go-ycsb测试工具使用

2021-12-17 18:30:16  阅读:418  来源: 互联网

标签:us 目录 go xx 测试工具 mdtest 0.000


最近做了juicefs和tikv的相关测试,也学习了下一些测试工具的使用;

一些新的产品的测试主要依赖 官方提供的benchmark、常用测试工具、根据测试场景定制脚本 这些测试方法;

文件系统、数据库相关的常用测试工具主要有:FIO、mdtest、go-ycsb

这里介绍下 mdtest 和 go-ycsb;

mdtest

mdtest 是一个简单的 I/O 基准测试工具,现在是IOR 工具套件的一部分,用于向存储系统发出高度并发的元数据操作流。它旨在展示文件系统能够为包括 mkdir、stat、rmdir、creat、open、close 和 unlink 在内的操作提供服务的峰值速率。

https://github.com/hpc/ioricon-default.png?t=LA92https://github.com/hpc/ior

旧的mdtest git地址:

https://github.com/LLNL/mdtest

下载&准备:

下载链接:

Releases · hpc/ior · GitHub

0.下载

1.创建一个目录,解压:tar -xvf ior-3.3.0.tar.gz

2.安装  https://github.com/hpc/ior 操作

3.会发现执行 ./configure 时候会缺少包,mpich... (这是该工具配合mpi使用时需要的包,mdtest也可以单独使用,为了完整性,建议装好mpi)

4.centOS7 安装mpi

查看系统版本:
lsb_release -a



yum install mpich-3.2-devel -y

export PATH=/usr/lib64/mpich-3.2/bin:$PATH

./configure


如果:(make命令报错,/bin/sh: mpicc: command not found)

export PATH=/usr/lib64/mpich-3.2/bin:$PATH

5.如果依然提示缺少mpi或者gcc,再通过yum安装一下openmpi、gcc(yum install gcc)即可

可参考,在centos7上安装MPICH - 简书

参数简介

ior/mdtest.c at main · hpc/ior · GitHub

或者通过 mdtest -help 命令查看参数

主要的几个参数:

-F只创建文件
-L只在目录树的子目录层创建文件/目录
-z目录树深度
-b目录树的分支数
-I每个树节点包含的项目数
-u为每个工作任务指定工作目录
-d指出测试运行的目录

使用:

// -b 每个节点3个分支, -z 表示目录深度为2, -I 表示每个节点100个文档(和空文件夹),-d 表示执行目录
// 注意:执行目录需要有多层,实测情况:/testtikv 异常,/testtikv/mdtest(多一层)正常运行

mdtest -b 3 -z 2 -I 100 -u -d /testtikv/mdtest


// 后台运行
mdtest -b 3 -z 2 -I 100 -u -d /testtikv/mdtest 2>&1 > output.log &

补充:使用mpi实现多线程操作

## 使用128线程写,单文件1m,10个文件

/usr/lib64/mpich-3.2/bin/mpirun -np 128 --hostfile myhost --map-by slot mdtest -F -w 1048576 -I 10 -z 0 -u -d /testtikv/mdtest

返回结果大致如下: 

-- started at 12/08/2021 11:41:18 --

mdtest-3.3.0 was launched with 1 total task(s) on 1 node(s)
Command line used: mdtest '-z' '1' '-b' '3' '-I' '1000' '-u' '-d' '/testtikv/mdtest'
Path: /testtikv
FS: 1024.0 TiB   Used FS: 0.0%   Inodes: 10.0 Mi   Used Inodes: 0.0%

Nodemap: 1
1 tasks, 4000 files/directories

SUMMARY rate: (of 1 iterations)
   Operation                      Max            Min           Mean        Std Dev

---------                      ---            ---           ----        -------

   Directory creation        :        279.322        279.322        279.322          0.000
   Directory stat            :       1465.559       1465.559       1465.559          0.000
   Directory removal         :        238.779        238.779        238.779          0.000
   File creation             :        282.639        282.639        282.639          0.000
   File stat                 :       1526.124       1526.124       1526.124          0.000
   File read                 :        911.837        911.837        911.837          0.000
   File removal              :        218.904        218.904        218.904          0.000
   Tree creation             :        254.833        254.833        254.833          0.000
   Tree removal              :        162.581        162.581        162.581          0.000
-- finished at 12/08/2021 11:42:32 --

单位为:IOPS

Directory creation 目录的创建
Directory stat 目录创建统计
Directory removal 目录的删除
File creation 文件的创建
File stat 文件的统计
File read 文件的读取
File removal 文件的删除
Tree creation 目录树的创建
Tree removal 目录树的删除
注:Max(最大)Min(最小)Mean(平均),其中Std Dev表示标准差,时间单位是IOPS。

参考:mdtest使用_changgongsheyue的博客-CSDN博客_mdtest


 

go-ycsb

使用:

参考 探究Go-YCSB做数据库基准测试 - luozhiyun`s Blog

注:

本地(MAC)编译指定运行环境(linux)

或者 直接到 Linux上装 go 环境,编译go-ycsb

demo:

// 往tikv中 insert 数据;recordcount=10000000表示要插入的数据量(很慢),operationcount=30000000 表示指定基数,没有发现有什么特别的作用,可能会用于接口查询数据范围限定
// tikv.type="txn" 表示使用事务接口
./go-ycsb load tikv -P /root/go-ycsb/go-ycsb/workloads/workloada -p tikv.pd="xx.xx.xx.xx:2379,xx.xx.xx.xx:2379,xx.xx.xx.xx:2379" -p tikv.type="txn" -p recordcount=10000000 -p operationcount=30000000

返回结果如下:

Run finished, takes 22m46.614929047s
READ   - Takes(s): 1366.6, Count: 150059, OPS: 109.8, Avg(us): 2096, Min(us): 1511, Max(us): 22907, 99th(us): 4000, 99.9th(us): 4000, 99.99th(us): 6000
UPDATE - Takes(s): 1366.6, Count: 149941, OPS: 109.7, Avg(us): 7002, Min(us): 4356, Max(us): 41229, 99th(us): 11000, 99.9th(us): 12000, 99.99th(us): 20000
[2021/12/14 16:38:27.395 +08:00] [INFO] [client.go:510] ["[pd] exit tso dispatcher"] [dc-location=global]

takes:耗时

Count:操作次数

READ:操作类型为 read

OPS:每秒操作数量,这里等同与QPS

标签:us,目录,go,xx,测试工具,mdtest,0.000
来源: https://blog.csdn.net/qq_33999844/article/details/122001061

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有