All of lore.kernel.org
 help / color / mirror / Atom feed
* New tools and changes
@ 2014-09-27 20:03 Jens Axboe
  2014-09-27 20:39 ` Jens Axboe
  0 siblings, 1 reply; 2+ messages in thread
From: Jens Axboe @ 2014-09-27 20:03 UTC (permalink / raw)
  To: fio

Hi,

I have committed a few new tools to the fio repo, and enabled the 
building of these tools (and the older ones) by default now. Previously, 
you'd have to do

$ make t/<toolname>

manually to build them, that is no longer the case. Anyway, the new 
tools are:

t/dedupe: this is a dedupe checker. You run this on a device or a file, 
and it will tell you how well the blocks on that device will dedupe. The 
block size defaults to 4KB, but can be set to anything you wish. By 
default this will use a bloom filter, which (for my testing) is within 
1% or better of the actually fully tracked check. You can do a full 
check with -B0 to turn off the bloom, however that can consume large 
amounts of memory on larger devices. If you are truly paranoid, there's 
a -c option as well to do full checking in case there are checksum 
collisions. The checksum used is md5. The output looks like this:

axboe@nelson:/home/axboe/git/fio $ sudo t/dedupe /dev/sda5
Will check </dev/sda5>, size <49999249408>, using 8 threads
Threads(8): 12206848 items processed
Extents=12206848, Unique extents=1625328
De-dupe ratio: 1:6.51
Fio setting: dedupe_percentage=87

dedupe will default to using as many threads as there are CPUs in the 
system, to speed things up. This is also settable. dedupe will also give 
you the fio setting to use to create a write workload with similar 
dedupability. The dedupe_percentage is a new option that allows you to 
set that.

t/btrace2fio: this is a tool that takes a blkparse binary dump and 
generates a fio job file matching that dump. This tools needs a bit more 
development effort, and I'd welcome people joining in and helping out. 
Right now it figures out the queue depth, read vs write mix, block size 
distribution, etc. It makes no attempt to collapse identical threads 
into one job with numjobs=x for readability, however.

I should write up some documentation for these tools, and will do so in 
the not-so-distant future. The dedupe tool probably needs a bit of error 
checking and handling and option range checking, but apart from that, 
it's mostly done. The btrace2fio tool is a bit more rough around the 
edges. I'd welcome feedback, suggestions, improvements for both, as usual.

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: New tools and changes
  2014-09-27 20:03 New tools and changes Jens Axboe
@ 2014-09-27 20:39 ` Jens Axboe
  0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2014-09-27 20:39 UTC (permalink / raw)
  To: fio

Hi,

I forgot to mention another handy change that went in recently - fio now 
supports including files from job files. This should make it easier to 
manage a test harness of fio files, since you can have more manageable 
files with a global (or per-host, whatever) include fio that has options 
for that particular instance. It's pretty simple to use, here's the 
section that was added to the HOWTO to explain it:

-----------

When fio is utilized as a basis of any reasonably large test suite, it 
might be desirable to share a set of standardized settings across 
multiple job files. Instead of copy/pasting such settings, any section 
may pull in an external .fio file with 'include filename' directive, as 
in the following example:

; -- start job file including.fio --
[global]
filename=/tmp/test
filesize=1m
include glob-include.fio

[test]
rw=randread
bs=4k
time_based=1
runtime=10
include test-include.fio
; -- end job file including.fio --

; -- start job file glob-include.fio --
thread=1
group_reporting=1
; -- end job file glob-include.fio --

; -- start job file test-include.fio --
ioengine=libaio
iodepth=4
; -- end job file test-include.fio --

Settings pulled into a section apply to that section only (except global
section). Include directives may be nested in that any included file may
contain further include directive(s). Include files may not contain []
sections.

--------

This feature courtesy of Andrey Kuzmin <andrey.v.kuzmin@gmail.com> who 
did all the work to make this feasible.

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-09-27 20:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-27 20:03 New tools and changes Jens Axboe
2014-09-27 20:39 ` Jens Axboe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.