Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   dmstats    ( 8 )

управление статистикой картографа (mapper statistics management)

Команды (Commands)

clear device_name [--allprograms|--programid id] [--allregions|--regionid id] Instructs the kernel to clear statistics counters for the speficied regions (with the exception of in-flight IO counters).

create device_name...|file_path...|--alldevices [--areas nr_areas|--areasize area_size] [--bounds histogram_boundaries] [--filemap] [--follow follow_mode] [--foreground] [--nomonitor] [--nogroup] [--precise] [--start start_sector --length length|--segments] [--userdata user_data] [--programid id] Creates one or more new statistics regions on the specified device(s).

The region will span the entire device unless --start and --length or --segments are given. The --start an --length options allow a region of arbitrary length to be placed at an arbitrary offset into the device. The --segments option causes a new region to be created for each target in the corresponding device-mapper device's table.

If the --precise option is used the command will attempt to create a region using nanosecond precision counters.

If --bounds is given a latency histogram will be tracked for the new region. The boundaries of the histogram bins are given as a comma separated list of latency values. There is an implicit lower bound of zero on the first bin and an implicit upper bound of infinity (or the configured interval duration) on the final bin.

Latencies are given in nanoseconds. An optional unit suffix of ns, us, ms, or s may be given after each value to specify units of nanoseconds, microseconds, miliseconds or seconds respectively, so for example, 10ms is equivalent to 10000000. Latency values with a precision of less than one milisecond can only be used when precise timestamps are enabled: if --precise is not given and values less than one milisecond are used it will be enabled automatically.

An optional program_id or user_data string may be associated with the region. A program_id may then be used to select regions for subsequent list, print, and report operations. The user_data stores an arbitrary string and is not used by dmstats or the device-mapper kernel statistics subsystem.

By default dmstats creates regions with a program_id of "dmstats".

On success the region_id of the newly created region is printed to stdout.

If the --filemap option is given with a regular file, or list of files, as the file_path argument, instead of creating regions with parameters specified on the command line, dmstats will open the files located at file_path and create regions corresponding to the physical extents allocated to the file. This can be used to monitor statistics for individual files in the file system, for example, virtual machine images, swap areas, or large database files.

To work with the --filemap option, files must be located on a local file system, backed by a device-mapper device, that supports physical extent data using the FIEMAP ioctl (Ext4 and XFS for e.g.).

By default regions that map a file are placed into a group and the group alias is set to the basename of the file. This behaviour can be overridden with the --alias and --nogroup options.

Creating a group that maps a file automatically starts a daemon, dmfilemapd to monitor the file and update the mapping as the extents allocated to the file change. This behaviour can be disabled using the --nomonitor option.

Use the --group option to only display information for groups when listing and reporting.

delete device_name|--alldevices [--allprograms|--programid id] [--allregions|--regionid id] Delete the specified statistics region. All counters and resources used by the region are released and the region will not appear in the output of subsequent list, print, or report operations.

All regions registered on a device may be removed using --allregions.

To remove all regions on all devices both --allregions and --alldevices must be used.

If a --groupid is given instead of a --regionid the command will attempt to delete the group and all regions that it contains.

If a deleted region is the first member of a group of regions the group will also be removed.

group [device_name|--alldevices] [--alias name] [--regions regions] Combine one or more statistics regions on the specified device into a group.

The list of regions to be grouped is specified with --regions and an optional alias may be assigned with --alias. The set of regions is given as a comma-separated list of region identifiers. A continuous range of identifers spanning from R1 to R2 may be expressed as 'R1-R2'.

Regions that have a histogram configured can be grouped: in this case the number of histogram bins and their bounds must match exactly.

On success the group list and newly created group_id are printed to stdout.

The group metadata is stored with the first (lowest numbered) region_id in the group: deleting this region will also delete the group and other group members will be returned to their prior state.

help [-c|-C|--columns] Outputs a summary of the commands available, optionally including the list of report fields.

list [device_name] [--histogram] [--allprograms|--programid id] [--units units] [--area] [--region] [--group] [--nosuffix] [--notimesuffix] [-v|--verbose] List the statistics regions, areas, or groups registered on the device. If the --allprograms switch is given all regions will be listed regardless of region program ID values.

By default only regions and groups are included in list output. If -v or --verbose is given the report will also include a row of information for each configured group and for each area contained in each region displayed.

Regions that contain a single area are by default omitted from the verbose list since their properties are identical to the area that they contain - to view all regions regardless of the number of areas present use --region). To also view the areas contained within regions use --area.

If --histogram is given the report will include the bin count and latency boundary values for any configured histograms.

print [device_name] [--clear] [--allprograms|--programid id] [--allregions|--regionid id] Print raw statistics counters for the specified region or for all present regions.

report [device_name] [--interval seconds] [--count count] [--units units] [--histogram] [--allprograms|--programid id] [--allregions|--regionid id] [--area] [--region] [--group] [-O|--sort sort_fields] [-S|--select selection] [--units units] [--nosuffix] [--notimesuffix] Start a report for the specified object or for all present objects. If the count argument is specified, the report will repeat at a fixed interval set by the --interval option. The default interval is one second.

If the --allprograms switch is given, all regions will be listed, regardless of region program ID values.

If the --histogram is given the report will include the histogram values and latency boundaries.

If the --relative is used the default histogram field displays bin values as a percentage of the total number of I/Os.

Object types (areas, regions and groups) to include in the report are selected using the --area, --region, and --group options.

ungroup [device_name|--alldevices] [--groupid id] Remove an existing group and return all the group's regions to their original state.

The group to be removed is specified using --groupid.

update_filemap file_path [--groupid id] [--follow follow_mode] [--foreground] Update a group of dmstats regions specified by group_id, that were previously created with --filemap, either directly, or by starting the monitoring daemon, dmfilemapd.

This will add and remove regions to reflect changes in the allocated extents of the file on-disk, since the time that it was crated or last updated.

Use of this command is not normally needed since the dmfilemapd daemon will automatically monitor filemap groups and perform these updates when required.

If a filemapped group was created with --nomonitor, or the daemon has been killed, the update_filemap can be used to manually force an update or start a new daemon.

Use --nomonitor to force a direct update and disable starting the monitoring daemon.