Linux中vdbench的安装与使用

Linux中vdbench的安装与使用vdbench是一个I/O工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。可以使用vdbench测试磁盘和文件系统的读写性能。环境:Ubuntu16.04一、安装Javavdbench的运行需要依赖于java,先查看主机是否装有java:java-version在当前主机中,没有…

大家好,又见面了,我是你们的朋友全栈君。

vdbench是一个 I/O 工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。

可以使用vdbench测试磁盘和文件系统的读写性能。

环境:Ubuntu 16.04

一、安装Java

vdbench的运行需要依赖于java,先查看主机是否装有java:

java -version

Linux中vdbench的安装与使用

在当前主机中,没有java,但是系统给出了如下的提示内容:

sudo apt install default-jre            
sudo apt install openjdk-11-jre-headless
sudo apt install openjdk-8-jre-headless 
sudo apt install openjdk-9-jre-headless 

安装第一项:

sudo apt install default-jre

测试java是否安装成功:

Linux中vdbench的安装与使用

二、安装vdbench

下载地址:https://www.oracle.com/technetwork/server-storage/vdbench-downloads-1901681.html

下载下来解压即可,下载过程可能比较麻烦,需要Oracle账号之类的,没有就创建一个吧。

Linux中vdbench的安装与使用

测试vdbench的可用性:

./vdbench -t

Linux中vdbench的安装与使用

三、vdbench的使用

在上面可以看到在vdbench的目录中,有以及examples目录。进入examples目录学习它提供的案例,以此来了解使用方式:

Linux中vdbench的安装与使用

可以使用cat命令查看里面的内容。

测试运行案例:

在查看之前,随便选择一个案例来进行运行测试试一试,例如examples/filesys/create_files:

 sudo ./vdbench -f examples/filesys/create_files

Linux中vdbench的安装与使用

Linux中vdbench的安装与使用

直接使用测试案例,能够运行成功,再来使用cat指令,或者打开文件查看里面的内容。

cat create_files

 主要内容如下:

fsd=fsd1,anchor=/dir,depth=1,width=1,files=10000,size=8k

fwd=fwd1,fsd=fsd1,operation=read,threads=16

rd=rd1,fwd=fwd*,fwdrate=100,format=yes,elapsed=5,interval=1

 可以将anchor=/dir 改为具体的测试目录或者说是挂载点。

例如我把目录改为:/mnt/vdb

将create_files拷贝一份命名为sweeneil:

Linux中vdbench的安装与使用

Linux中vdbench的安装与使用

运行一下来测试:

Linux中vdbench的安装与使用

运行成功。

四、vdbench参数介绍

来源:https://www.cnblogs.com/AgainstTheWind/p/9869513.html

对于一个文件系统,配置以下参数:

1、HD:主机定义

  • 与虚拟块设备相同

2、FSD:文件系统定义

  • fsd= 标识文件系统定义的名称
  • anchor= 将在其中创建目录结构的目录
  • width= 要在定位符下创建的目录数
  • depth= 要在定位符下创建的级别数
  • files= 要在最低级别创建的文件数
  • sizes= (size,size,…) 将创建的文件大小
  • distribution= bottom(如果希望仅在最低级别创建文件)和 all(如果希望在所有目录中创建文件)
  • openflags= 用于打开一个文件系统 (Solaris) 的 flag_list

3、FWD:文件系统工作负载定义

  • 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 个文件。

4、RD:运行定义

  • fwd= 要使用的文件系统工作负载定义的 ID。
  • fwdrate= 每秒执行的文件系统操作数量。
  • format= yes / no / only / restart / clean / directories。在开始运行之前要执行的操作。
  • yes:是每次都会先删除目录文件,再重新创建
  • restart:每次起的时候会先校验文件、目录是否全,不全的补上
  • no:不校验文件目录直接跑,事先最好将文件灌好

参考

[1]. vdbench

[2]. vdbench的使用教程——裸盘测试和文件系统测试. https://blog.csdn.net/u012114090/article/details/81626430

[3]. vdbench 参数详解. https://blog.csdn.net/yuanfang_way/article/details/79296293

 

更新

vdbench官方指导文档:https://www.oracle.com/technetwork/server-storage/vdbench-1901683.pdf

这个文档里面写得比较详细,如果还不是很明确,可以查看此文档~

emmm~好吧,我又发现了其实在源码里面就有vdbench的说明文档,文档内容很详细,要是早知道这个文档就好了!!!

Linux中vdbench的安装与使用

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144253.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 树莓派连接wifi个人热点和远程windows远程登录

    树莓派连接wifi个人热点和远程windows远程登录1.安装完系统后在该目录下新建wpa_supplicant.conf文件填入以下信息country=CNctrl_interface=DIR=/var/run/wpa_supplicantGROUP=netdevupdate_config=1network={ssid="WiFi-A"psk="12345678"key_mgmt=WPA-PSKpriority=1}…

    2022年5月5日
    80
  • C语言流水灯程序_51流水灯c语言程序

    C语言流水灯程序_51流水灯c语言程序0x01是数字,十六进制的数字。其结果等效于1。在数学上就是1,只不过在计算机上用2进制和十六进制较多,所以用十六进制表示。if(i&0x01)printf("奇数\n");elseprintf("偶数\n");system("pause");.0x01代表十六进制数也就是十进制数的01,&是把这些数转化为二进制数然后进行按位与运算info>>(…

    2025年6月8日
    5
  • c语言 无锁编程,无锁编程与有锁编程的效率总结、无锁队列的实现(c语言)「建议收藏」

    c语言 无锁编程,无锁编程与有锁编程的效率总结、无锁队列的实现(c语言)「建议收藏」1.无锁编程与有锁编程的效率无锁编程,即通过CAS原子操作去控制线程的同步。如果你还不知道什么使CAS原子操作,建议先去查看相关资料,这一方面的资料网络上有很多。CAS实现的是硬件级的互斥,在线程低并发的情况下,其性能比普通互斥锁高效,但是当线程高并发的时候,硬件级互斥引入的代价与应用层的锁竞争产生的代价同样都是很大的。这时普通锁编程其实是优于无锁编程的。硬件级原子操作使应用层的操作变慢,而且无法…

    2022年5月2日
    45
  • protel 99se 负片打印「建议收藏」

    protel 99se 负片打印「建议收藏」protel99se负片打印首先得有一个做好的pcb做好的pcb做好的pcb   打开做好的PCB1.      点击下面的mechanical1层再点击place->fill将板子都盖住2.      点击file->new 选择PCBPrinter3.      选中左边的multilayercompositeprint 点击edit-

    2022年5月29日
    64
  • navicat连接MySQL失败,cmd也不能登录MySQL_远程连接mysql

    navicat连接MySQL失败,cmd也不能登录MySQL_远程连接mysql出现Clientdoesnotsupportauthenticationprotocolrequestedbyserver…的解决方案mysqladmin-uroot-ppassword123456qmysql-uroot-pALTERUSER’root’@’localhost’IDENTIFIEDWITHmysql_native_password…

    2022年10月14日
    8
  • java打印数组全部内容_java迭代数组

    java打印数组全部内容_java迭代数组今天输出数组遇到问题,学习一下打印输出数组内容的几种方式错误示范:System.out.println(array);  //这样输出的是数组的首地址,而不能打印出数组数据。(唉,我开始就是这么写的。。。)一维数组:int[]array={1,2,3,4,5,6};方式一:for循环for(inti=0;i<array.length;i++){System.out.println(array[i]);}输出为:(自动换行格式的)方式二:for

    2022年10月7日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号