基本执行方法

指定记载了I/O操作模式的设置文件,然后启动fio命令,这就是fio最基本的执行方法。大多数的项目可以不使用配置文件而通过命令行选项来指定。首先举出两种分别使用命令行选项的方法和配置文件的方法的简单例子,了解基本执行方法和命令行/设置文件的对应情况。

第一个示例执行的是下列操作。

·进行10MB的顺序读入。

·同时,其他进程随机进行5MB的写入。

·使用read(2)和write(2)进行读写。

·使用Direct I/O。

在fio命令行进行这些设置时的操作如下。在当前目录下会生成读写用的文件,因此要在可以写入的目录下执行。


$fo—name=global—direct=1—name=read—rw=read—size=10m—name=write

—rw=randwrite—size=5m


与上述命令行选项具有相同意义的配置文件如下所示。


cat fo_exam.fo

[global]

direct=1

[readjob]

size=10m

rw=read

[writejob]

size=5m

rw=randwrite


使用这个配置文件执行fio命令如下。


$fo simple_read.fo


命令行选项与配置文件的各项之间的关系非常明显。这里简单介绍配置文件的各项的意义。

以#开头的是注释(comment)。内容直到行尾都被忽略。

方括号表示[]作业(job)定义选项的开始。方括号内是作业的名称。作业可以任意命名。但是global这个名称是内部使用的。作业global是用来定义所有作业共同的设置项。

fio按照每个作业生成进程,生成的进程根据设置进行实际的I/O操作。因此,fio的配置文件中除了global选项以外,必须要定义多个作业。

global选项中设置了direct=1。将direct设置为1时,使用的就Direct I/O。未指定时,就等同于direct=0(经由一般页面缓存进行I/O)。

接下来定义名为readjob的作业。

readjob作业中使用size设置I/O操作的大小(字节数)。后缀m表示兆字节。后缀可以使用k、m、g、t、p。readjob作业的进程在进行了size所设置的大小的I/O后就会结束。

rw用来设置I/O模式。readjob作业中指定的是表示顺序读出的read。其他的将在下一节中介绍。

最后再定义一个名称为writejob的作业。

writejob作业将进行I/O的大小设置为5MB, I/O模式设置为随机写入(randwrite)。

按照这个设置执行fio时,首先会在当前目录下生成用于I/O的文件,进行同步处理,取消页面缓存。然后,生成与readjob作业相对应的进程和与writejob作业相对应的进程,进行各自设置的I/O操作。各作业在完成size所设置的字节数的I/O后,就会结束。所有作业结束后,结果就会显示在控制台上。

输出结果包括很多信息。这些内容将在下一节中详细介绍。