X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=README;h=d8cca8af7f1c77ccb3e37b28fd89ab6f71551aa6;hp=c951504eb52925c46678195d1783abd219ebf01f;hb=ec94ec567cae47f91fa31a18250c2a7a0029d2ad;hpb=9ebc27e1352b905fe3396ce2350a7765fe9c57b8 diff --git a/README b/README index c951504e..d8cca8af 100644 --- a/README +++ b/README @@ -46,8 +46,8 @@ $ fio -t Runtime in seconds -l Generate per-job latency logs -w Generate per-job bandwidth logs - -f Read for job descriptions -o Log output to file + -m Minimal (terse) output -h Print help info -v Print version information and exit @@ -88,6 +88,8 @@ The job file parameters are: usb-storage or sata/libata driven) devices. iodepth=x For async io, allow 'x' ios in flight overwrite=x If 'x', layout a write file first. + nrfiles=x Spread io load over 'x' number of files per job, + if possible. prio=x Run io at prio X, 0-7 is the kernel allowed range prioclass=x Run io at prio class X bs=x Use 'x' for thread blocksize. May include k/m postfix. @@ -101,7 +103,9 @@ The job file parameters are: cpumask=x Only allow job to run on CPUs defined by mask. fsync=x If writing, fsync after every x blocks have been written startdelay=x Start this thread x seconds after startup - timeout=x Terminate x seconds after startup + timeout=x Terminate x seconds after startup. Can include a + normal time suffix if not given in seconds, such as + 'm' for minutes, 'h' for hours, and 'd' for days. offset=x Start io at offset x (x string can include k/m/g) invalidate=x Invalidate page cache for file prior to doing io sync=x Use sync writes if x and writing @@ -111,6 +115,7 @@ The job file parameters are: bwavgtime=x Average bandwidth stats over an x msec window. create_serialize=x If 'x', serialize file creation. create_fsync=x If 'x', run fsync() after file creation. + unlink If set, unlink files when done. end_fsync=x If 'x', run fsync() after end-of-job. loops=x Run the job 'x' number of times. verify=x If 'x' == md5, use md5 for verifies. If 'x' == crc32, @@ -133,6 +138,8 @@ The job file parameters are: write_iolog=x Write an iolog to file 'x' in the same format as iolog. The iolog options are exclusive, if both given the read iolog will be performed. + write_bw_log Write a bandwidth log. + write_lat_log Write a latency log. lockmem=x Lock down x amount of memory on the machine, to simulate a machine with less memory available. x can include k/m/g suffix. @@ -140,6 +147,9 @@ The job file parameters are: exec_prerun=x Run 'x' before job io is begun. exec_postrun=x Run 'x' after job io has finished. ioscheduler=x Use ioscheduler 'x' for this job. + cpuload=x For a CPU io thread, percentage of CPU time to attempt + to burn. + cpuchunks=x Split burn cycles into pieces of x. Examples using a job file @@ -303,14 +313,39 @@ util= The disk utilization. A value of 100% means we kept the disk busy constantly, 50% would be a disk idling half of the time. +Terse output +------------ + +For scripted usage where you typically want to generate tables or graphs +of the results, fio can output the results in a comma seperated format. +The format is one long line of values, such as: + +client1,0,0,936,331,2894,0,0,0.000000,0.000000,1,170,22.115385,34.290410,16,714,84.252874%,366.500000,566.417819,3496,1237,2894,0,0,0.000000,0.000000,0,246,6.671625,21.436952,0,2534,55.465300%,1406.600000,2008.044216,0.000000%,0.431928%,1109 + +Split up, the format is as follows: + + jobname, groupid, error + READ status: + KiB IO, bandwidth (KiB/sec), runtime (msec) + Submission latency: min, max, mean, deviation + Completion latency: min, max, mean, deviation + Bw: min, max, aggreate percentage of total, mean, deviation + WRITE status: + KiB IO, bandwidth (KiB/sec), runtime (msec) + Submission latency: min, max, mean, deviation + Completion latency: min, max, mean, deviation + Bw: min, max, aggreate percentage of total, mean, deviation + CPU usage: user, system, context switches + + Author ------ -Fio was written by Jens Axboe to enable flexible testing +Fio was written by Jens Axboe to enable flexible testing of the Linux IO subsystem and schedulers. He got tired of writing specific test applications to simulate a given workload, and found that the existing io benchmark/test tools out there weren't flexible enough to do what he wanted. -Jens Axboe 20060609 +Jens Axboe 20060905