[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[dm-devel] ANNOUNCE: new dm statistics patches


I uploaded new statistics patches for 3.10 to 

You need to apply the patch dm-optimize.patch, then apply 

Use the Makefile to compile the userspace tool.

Basic usage:

./stats -c /dev/mapper/device

--- start collecting statistics, by default, statistics are collected for 
segments, each segment has 64MB. The segment size can be changed with -g. 
If the argument to -g is a positive number, it is the size of segment in 
512-byte sectors. If the the argument to -g is a negative number, the 
segment size is set so that device is divided into the specified number of 

./stats -q /dev/mapper/device
--- query the collected statistics (use --clear to clear them)

Query can be combined with --raw (report raw counters), --bi (use 
mebibytes), --nomerge (treat merged I/Os as separate). --seek (show 
approximate seek time instead of latency).

./stats -d /dev/mapper/device
--- delete the statistics

./stats -l
--- list all devices that have statistics collected

If the device is omitted, the command works on all active device mapper 

Advanced usage:

./stats /dev/mapper/device -s <sector> -g <sectors>

--- subdivide the existing range into a smaller range. <sector> must be an 
start of some segment where statistics are already being collected. The 
command will subdivide the segment into many smaller segments, each having 
<sectors> sectors.

./stats -d /dev/mapper/device -s <sector>

--- delete a range that was previously created using the subdivide 

./stats -a /dev/mapper/device

--- schedule the device for automatic subdivide. This option can be 
combined with the '-c' option to create initial statistics for the device.

For automatic subdivide to work, you need to run the "stats" program 
periodically from cron with no parameters.

When the device is scheduled for automatic subdivide, the system waits the 
specified amount of time (by default 600 seconds, can be set with 
--auto-subdivide-time), then takes 3 ranges with most I/O requests (can be 
set with --auto-subdivide-number) and subdivides them into 256 pieces (can 
be set with --auto-subdivide-granularity). If you specify 
--auto-subdivide-depth greater than 1, then the process is repeated at 
next interval (by default --auto-subdivide-depth is 1, which means that 
just one automatic subdivision is done).

./stats -da /dev/mapper/device

--- delete all statistics that were collected as a result of automatic 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]