Ops工具
Helm
Helm 包管理工具
Helm进阶
Ansible
Ansible入门
Ansible 常用模块指令
Ansible playbook详解
Vdbench
vdbench基础使用指南
vdbench在ARM服务器上出现共享库aarch64.so问题
GitLab
Gitlab自定义机器人
Gitlab安装和使用
CosBench
Cosbench测试
s3curl
s3curl常用命令大全
S3curl测试
FIO
FIO安装和使用方法
本文档使用 MrDoc 发布
-
+
首页
vdbench基础使用指南
#### 免密互信(涉及多台主机) ``` [root@host01 vdbench]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:FCvtOQWsh5E921PDIDYpJHT4hk11+zT9ZpvieEKpy8Y root@host01 The key's randomart image is: +---[RSA 2048]----+ | .ooo=B.oo | | .o=o=B .+. | | =.=++o.o.. | | . *+oooo . . | | . .S .o +| | . o oo| | . o . o | | .E .o.. | | .o..o. | +----[SHA256]-----+ [root@host01 vdbench]# ssh-copy-id 10.1.0.20 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" The authenticity of host '10.1.0.20 (10.1.0.20)' can't be established. ECDSA key fingerprint is SHA256:aH0MCMlqXwgmg7lYSjk5lf9wDhDlDPfKoewAQN5xc1Q. ECDSA key fingerprint is MD5:7c:57:f2:17:0b:e4:b2:cd:f2:1f:c1:ac:86:25:b1:0f. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@10.1.0.20's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '10.1.0.20'" and check to make sure that only the key(s) you wanted were added. [root@host01 vdbench]# ``` #### 上传后解压及使用 ``` [root@host01 ~]# unzip -q vdbench.zip [root@host01 ~]# cd vdbench/ [root@host01 vdbench]# ls 01_8k_read70 build_sds.txt example1 example3 example5 example7 hp mac solaris swatcharts.txt vdbench.bat vdbench.pdf aix classes example2 example4 example6 examples linux readme.txt solx86 vdbench vdbench.jar windows [root@host01 vdbench]# chmod +x vdbench [root@host01 vdbench]# ./vdbench -t // 本地测试 [root@host01 vdbench]# ./vdbench -f 配置文件名 -o 输出目录 ``` #### LUN测试配置文件 ``` // 屏蔽不必要的回显 messagescan=no // 指定多个主机,使用多个主机时用相同的用户实现免密链接是前提 // hd是统配符,如果不采用hd*则需要填写对应主机名 hd=default,vdbench=/vdbench/vdbench50406,user=root,shell=ssh hd=hd1,system=192.168.234.42 hd=hd2,system=192.168.234.43 hd=hd3,system=192.168.234.44 sd=default,threads=36,openflags=o_direct // 指定多个磁盘 sd=sd1,hd=hd1,lun=/dev/sdb sd=sd2,hd=hd1,lun=/dev/sdc sd=sd3,hd=hd2,lun=/dev/sdb sd=sd4,hd=hd2,lun=/dev/sdc sd=sd5,hd=hd3,lun=/dev/sdb sd=sd6,hd=hd3,lun=/dev/sdc // 工作负载定义 wd=wd1,sd=sd*,xfersize=8k,rdpct=70,seekpct=100 // 运行定义 rd=run1,wd=wd1,iorate=max,elapsed=600,interval=1,warmup=30 ``` #### 文件系统配置文件 ``` // 4K_seq_100%read messagescan=no // 指定多个主机,使用多个主机时用相同的用户实现免密链接是前提 // hd是统配符,如果不采用hd*则需要填写对应主机名 hd=default,vdbench=/temp/vdbench50406/,user=root,shell=ssh hd=host01,system=10.8.12.209 hd=host02,system=10.8.12.210 hd=host03,system=10.8.12.211 hd=host04,system=10.8.12.212 // 指定多个文件系统 fsd=default,depth=2,width=50,size=4k,files=1000,openflags=o_direct fsd=fsd1,anchor=/data01 fsd=fsd2,anchor=/data02 // 工作负载定义 fwd=default,xfersize=4k,fileio=sequential,fileselect=sequential,threads=2,openflags=o_direct fwd=fwd1,fsd=fsd1,host=host01 fwd=fwd2,fsd=fsd2,host=host01 fwd=fwd3,fsd=fsd3,host=host02 // 运行定义 rd=rd1,fwd=fwd*,fwdrate=max,operations=(read,write),rdpct=100,format=yes,elapsed=300,interval=1 // 8192K_random_70%read_30%write messagescan=no hd=default,vdbench=/temp/vdbench50406/,user=root,shell=ssh hd=host01,system=10.8.12.209 hd=host02,system=10.8.12.210 fsd=default,depth=2,width=50,size=4k,files=1000,openflags=o_direct fsd=fsd1,anchor=/data01 fsd=fsd2,anchor=/data02 fwd=default,xfersize=8192k,fileio=random,fileselect=random,threads=2,openflags=o_direct fwd=fwd1,fsd=fsd1,host=host01 fwd=fwd2,fsd=fsd2,host=host01 rd=rd1,fwd=fwd*,fwdrate=max,operations=(read,write),rdpct=70,format=restart,elapsed=300,interval=1 ``` #### 配置解释 ``` LUN • wd= 标识工作负载的名称。 • sd= 要使用的存储定义的 ID。 • host= 要运行此工作负载的主机的 ID。默认设置为 localhost。 • rdpct= 读取请求占请求总数的百分比。 • rhpct= 读取命中百分比。默认设置为 0。 • whpct= 写入命中百分比。默认设置为 0。 • xfersize= 要传输的数据大小。默认设置为 4k。 • seekpct= 随机寻道的百分比。可为随机值。 • openflags= 用于打开一个 lun 或一个文件的 flag_list。 • iorate= 此工作负载的固定 I/O 速率。 运行定义: • rd= 标识运行的名称。 • wd= 用于此运行的工作负载的 ID。 • iorate= (#,#,...) 一个或多个 I/O 速率。 • max:不受控制的工作负载。 • elapsed= time:以秒为单位的运行持续时间。默认设置为 30。 • warmup= time:加热期,最终会被忽略。 • distribution= I/O 请求的分布:指数、统一或确定性。 • pause= 在下一次运行之前休眠的时间,以秒为单位。 • openflags= 用于打开一个 lun 或一个文件的 flag_list、o_direct表示直接下盘、o_sync表示写到内存再下盘 文件系统: • fsd= 标识文件系统定义的名称 • anchor= 将在其中创建目录结构的目录 • width= 要在定位符下创建的目录数 • depth= 要在定位符下创建的级别数 • files= 要在最低级别创建的文件数 • sizes= (size,size,...) 将创建的文件大小 • distribution= bottom(如果希望仅在最低级别创建文件)和 all(如果希望在所有目录中创建文件) • openflags= 用于打开一个文件系统 (Solaris) 的 flag_list 工作负载定义: • fwd= 标识文件系统工作负载定义的名称。 • fsd= 要使用的文件系统定义的 ID。 • host= 要用于此工作负载的主机的 ID。 • fileio= random(随机) 或 sequential(顺序),表示文件 I/O 将执行的方式。 • fileselect= random 或 sequential,标识选择文件或目录的方式。 • xfersizes= 数据传输(读取和写入操作)处理的数据大小。 • operation= mkdir、rmdir、create、delete、open、close、read、write、getattr 和 setattr。选择要执行的单个文件操作。 • rdpct= (仅)读取和写入操作的百分比。 • threads= 此工作负载的并发线程数量。每个线程需要至少 1 个文件。 运行定义: • fwd= 要使用的文件系统工作负载定义的 ID。 • fwdrate= 每秒执行的文件系统操作数量。 • format= yes / no / only / restart / clean / directories。在开始运行之前要执行的操作。 • operations= 覆盖 fwd 操作。选项相同。 ``` #### 重删压缩  **dedupunit:**保持业务IO是unit的倍数即可,常规下保持一致压缩率会更好 **dedupflipflop:**默认关闭,修改为yes时,会严重影响定长重删的重删率.(触发数据翻转,让本应该重复的数据,变的不重复)。相似重删,影响不大 ```bash #compratio=2 dedupratio=2 dedupunit=64K fsd=fsd1,anchor=/mnt/ded,depth=1,width=1,files=100,size=100m,openflags=o_direct fwd=fwd1,fsd=fsd*,operation=write,xfersize=64k,fileio=random,fileselect=random,threads=8 rd=rd1,fwd=fwd1,fwdrate=max,format=yes,warmup=0,elapsed=180,interval=1 ``` #### 多配置文件自动执行脚本 ``` array_name=(test1 test2 test3) for ((i=0; i<3; i++)); do csh /vdbench/vdbench -f /vdbench/${array_name[$i]} -o /vdbench/${array_name[$i]} sleep 30 done ## array_name:存放配置文件名称 ## -o:代表输出文件,可采用一个配置文件用一个相同名称目录保存 ``` #### windows联机测试 1、所有slave主机运行vdbench本身rsh守护进程 ``` ./vdbench rsh ``` 此命令是用于windows系统多主机联机跑vdbench时使用,因为windows操作系统不支持ssh,因此,vdbench提供了rsh的通信方式。在目标主机上执行此工具后,vdbench将会启动一个java socket用于vdbench slave与master之间通信 2、master主机运行测试参数文件即可 **注意点** 1、防火墙放通或关闭(推荐) ``` RHEL6.X: [root@rhel6 ~]# service iptables stop iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Unloading modules: [ OK ] [root@rhel6 ~]# setenforce 0 RHEL7.X: [root@rhel7 ~]# systemctl stop firewalld [root@rhel7 ~]# setenforce 0 SUSE11: suse11:~ # service SuSEfirewall2_setup stop suse11:~ # service SuSEfirewall2_init stop SUSE12: suse12:~ # systemctl stop SuSEfirewall2.service Ubuntu16: [root@ubuntu01 ~]# ufw disable ``` 2、多主机ssh互信 ``` 最简单直接的方法: [root@oracle01 ~]# ssh-keygen [root@oracle01 ~]# ssh-copy-id 10.1.0.20 ``` 3、多主机时间同步 如果时间不同步,启动时不会报以下错误: ``` 10:40:06.974 Clock synchronization warning: slave hd2-0 is 192 seconds out of sync. This can lead to heartbeat issues. 10:40:07.001 Clock synchronization warning: slave hd3-0 is 58 seconds out of sync. This can lead to heartbeat issues. ``` 设置方法: ``` RHEL6.X 方法一: [root@rhel6 ~]# date --set="05/31/16 18:16:00" 方法二: // 设置硬件时钟 [root@rhel6 ~]# hwclock --set --date "21 Sep 2019 16:02:25" //同步到系统时间 [root@rhel6 ~]# hwclock --hctosys RHEL7.X [root@rhel7 ~]# timedatectl set-time "2021-09-11 10:00:00" SUSE: suse11:~ # date --set="05/31/16 18:16:00" ``` 5、依赖环境检查 java版本(vdbench目录下readme中有版本限制说明,vdbench.pdf中有详细信息) csh 4、503版本文件系统测试fileio=sequential时和rdpct不可同时使用 ``` hitarea参数越接近于IO大小,性能越好 rhpct命中百分比越大性能越好 ``` **出错排查思路:** ```bash 运行时添加-o参数输出 运行出错停止后查看报错输出: [root@rhel7 ~]# vim qq/hd1-0.stdout.html // qq是运行时指定的输出目录 // hd1代表主机 ```
阿星
2024年8月19日 20:30
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码