Centos 7 安装vdbench
1 | 1、首先安装Java JDK和一些工具包,这里使用的是java-1.7.0 |
运行测试
1 | 1、准备测试目录 |
其他常用参数
openflags
1 | 这个参数可以指定在SD, WD, FSD, FWD, RD中 |
sizes(注意这里有s)
1 | 这个参数可以指定在FSD中 |
多机测试
应用场景为多个NFS Client挂在相同NFS Server的读写。
1 | hd=default,vdbench=/home/vdbench,user=root,shell=ssh |
参数解析:
有3台测试节点node1、node2、node3。每台测试节点的/home/vdbench/目录都存在可执行vdbench二进制文件(位置必须相同),使用root用户通过ssh方式连接(节点间需要做ssh免密),每台测试节点的测试目录为/mnt/test863,目录深度为1,最深层目录中的目录宽度为10,最深层每个目录中有10000个文件,每个文件大小20mb
关于shared=yes
随着Vdbench运行多个slaves和可选的多个hosts,slaves和hosts之间关于文件状态的通信变得困难。使所有这些slaves设备相互通信所涉及的开销变得过于昂贵。您不希望一个slave删除另一个slave当前正在读取或写入的文件。因此,Vdbench不允许您跨slaves和hosts共享FSD。
当然,在你开始使用庞大的文件系统之前,这一切听起来都很棒。 您刚刚填满了500 TB的磁盘文件,然后您决定要与一个或多个远程主机共享该数据。 从头开始重新创建整个文件结构需要很长时间。 该怎么办?
指定’shared = yes’时,Vdbench将允许您共享文件系统定义(FSD)。 它通过允许每个slave设备仅使用FSD文件结构中定义的每个“第n”文件来实现这一点,其中“n”等于slave数量。(It does this by allowing each slave to use only every ‘nth’ file as is defined in the FSD file structure, where ‘n’ equals the amount of slaves.)
这意味着不同的host不会互相踩到脚趾,但有一个例外:当您指定’format = yes’时,Vdbench首先删除已存在的文件结构。由于这可能是一个旧的文件结构,Vdbench无法传播文件删除周围,让每个slave删除他的’第n’文件。因此,每个slave设备都会尝试删除所有文件,但如果删除失败则不会生成错误消息(因为不同的slave设备只是删除了它)。这些失败的删除将被计算并报告在“Miscellaneous statistics”中的“FILE_DELETE_SHARED”计数器下。但是,“FILE_DELETES”计数器可以包含高于存在的文件数量的计数。我已经看到多个slaves设备能够同时删除同一个文件而没有操作系统将任何错误传递给Java的情况。
关于rdpct(Read Percentage)
此参数允许您混合读取和写入。 使用operation=read只允许你做read,operation=write只允许你做write。 但是,指定rdpct=,您将能够在同一个选定文件中混合读取和写入。请注意,对于sequential(顺序),这没有多大意义。您可以以读取块1,写入块2,读取块3等。对于随机I/O,这非常有意义。
关于format=
no
不需要任何格式,但现有文件结构必须与 FSD 定义的结构相匹配。
yes
Vdbench 将首先删除当前文件结构,然后再次创建文件结构。然后,它将执行您在 RD 中的请求。
restart
Vdbench将仅创建尚未创建的文件,并且还将扩展未达到其正确大小的文件。 (这是totalsize和workingsetsize可以发挥作用的地方)。
only
与’yes’相同,但Vdbench不会执行当前的RD。
dir(ectories)
与‘yes’相同,但它只会创建目录。
clean
Vdbench只会删除当前的文件结构,而不会执行当前的RD。
once
这将覆盖每个forxxx参数循环完成format的默认行为。
limited
format将在elapsed=seconds之后终止,而不是所有文件或为totalsize=选择的文件已格式化之后终止。
complete
只能与’format=no’一起使用,并且会告诉Vdbench format已经完成,但是Vdbench不应该尝试通过目录搜索来验证每个目录和文件的状态。 当然,如果一个或多个目录或文件丢失或文件未达到其预期大小,结果不可预测。在测试期间删除或创建目录或文件时非常危险。