mmpmon command

Manages performance monitoring and displays performance information.

Synopsis

mmpmon [-i CommandFile] [-d IntegerDelayValue] [-p]
  [-r IntegerRepeatValue] [-s] [-t IntegerTimeoutValue]

Availability

Available on all IBM Spectrum Scale editions.

Description

Before you attempt to use mmpmon, it is a good idea to review the current command topic and read the topic Monitoring I/O performance with the mmpmon command.

Use the mmpmon command to manage GPFS performance monitoring functions and display performance monitoring data. The mmpmon command reads requests from an input file or standard input (stdin), and writes responses to standard output (stdout). Error messages go to standard error (stderr). Prompts, if not suppressed, go to stderr.

You can run mmpmon so that it continually reads input from a pipe. That is, the driving script or application never sends an end of file. In this scenario, it is a good idea to set the -r option to 1, or to use the default value of 1. This setting prevents the command from caching input records. In doing so it avoids unnecessary memory consumption.

This command cannot be run from a Windows node.

Results

The performance monitoring request is sent to the GPFS daemon that is running on the same node that is running the mmpmon command.

All results from the request are written to stdout.

The command has two output formats:
  • Human readable, intended for direct viewing.
    In this format, the results are keywords that describe the value presented, followed by the value. Here is an example:
    disks: 2
  • Machine readable, an easily parsed format intended for further analysis by scripts or applications.

    In this format, the results are strings with values presented as keyword/value pairs. The keywords are delimited by underscores (_) and blanks to make them easier to locate.

For details on how to interpret the mmpmon command results, see the topic Monitoring I/O performance with the mmpmon command.

Parameters

-i CommandFile
The input file contains mmpmon command requests, one per line. Use of the -i flag implies use of the -s flag. For interactive use, omit the -i flag. In this case, the input is then read from stdin, allowing mmpmon to take keyboard input or output piped from a user script or application program.

Leading blanks in the input file are ignored. A line beginning with a number sign (#) is treated as a comment. Leading blanks in a line whose first non-blank character is a number sign (#) are ignored.

The input requests to the mmpmon command are as follows:
fs_io_s
Displays I/O statistics per mounted file system.
io_s
Displays I/O statistics for the entire node.
nlist add name [name...]
Adds node names to a list of nodes for mmpmon processing.
nlist del
Deletes a node list.
nlist new name [name...]
Creates a node list.
nlist s
Shows the contents of the current node list.
nlist sub name [name...]
Deletes node names from a list of nodes for mmpmon processing.
once request
Indicates that the request is to be performed only once.
qosio
Displays statistics for Quality of Service for I/O operations (QoS).
reset
Resets statistics to zero.
rhist nr
Changes the request histogram facility request size and latency ranges.
rhist off
Disables the request histogram facility. This value is the default.
rhist on
Enables the request histogram facility.
rhist p
Displays the request histogram facility pattern.
rhist reset
Resets the request histogram facility data to zero.
rhist s
Displays the request histogram facility statistics values.
rpc_s
Displays the aggregation of execution time for remote procedure calls (RPCs).
rpc_s size
Displays the RPC execution time according to the size of messages.
ver
Displays mmpmon version.
vio_s [f rg RecoveryGroupName [da DeclusteredArray [v Vdisk]]] [reset]
Displays IBM Spectrum Scale RAID vdisk I/O statistics. For more information about IBM Spectrum Scale RAID, see IBM Spectrum Scale RAID: Administration.
vio_s_reset [f rg RecoveryGroupName [da DeclusteredArray [v Vdisk]]]
Resets IBM Spectrum Scale RAID vdisk I/O statistics. For more information about IBM Spectrum Scale RAID, see IBM Spectrum Scale RAID: Administration.
loc_io_s [f fs fsName [p poolName]]
Displays locality I/O statistics. It displays the amount of data that is written/read locally and remotely. It supports filesystem filter and pool filter.

Options

-d IntegerDelayValue
Specifies a number of milliseconds to sleep after one invocation of all the requests in the input file. The default value is 1000. This value must be an integer greater than or equal to 500 and less than or equal to 8000000.
The command processes the input file in the following way:
  1. The command processes each request in the input file sequentially. It reads a request, processes it, sends it to the GPFS daemon, and waits for the response. When it receives the response, the command processes it and displays the results of the request. The command then goes on to the next request in the input file.
  2. When the command processes all the requests in the input file, it sleeps for the specified number of milliseconds.
  3. When the command wakes, it begins another cycle of processing, beginning with Step 1. The number of repetitions depends on the value of the -r flag.
-p
Indicates to generate output that can be parsed by a script or program. If this option is not specified, human-readable output is produced.
-r IntegerRepeatValue
Specifies the number of times to run all the requests in the input file.

The default value is one. Specify an integer between zero and 8000000. Zero means to run forever, in which case processing continues until it is interrupted. This feature is used, for example, by a driving script or application program that repeatedly reads the result from a pipe.

The once prefix directive can be used to override the -r flag. See the description of once in the topic Monitoring I/O performance with the mmpmon command.

-s
Indicates to suppress the prompt on input.

Use of the -i flag implies use of the -s flag. For use in a pipe or with redirected input (<), the -s flag is preferred. If not suppressed, the prompts go to standard error (stderr).

-t IntegerTimeoutValue
Specifies a number of seconds that the command waits for responses from the GPFS daemon before it fails.

The default value is 60. This value must be an integer greater than or equal to 1 and less than or equal to 8000000.

Exit status

0
Successful completion.
1
Various errors, including insufficient memory, input file not found, incorrect option, and others.
3
Either no commands were entered interactively, or the input file did not contain any mmpmon commands. The input file was empty, or consisted of all blanks or comments.
4
mmpmon terminated due to a request that was not valid.
5
An internal error occurred.
111
An internal error occurred. A message follows.

Restrictions

  1. Up to five instances of mmpmon can be run on a node concurrently. However, concurrent users might interfere with each other. See the topic Monitoring I/O performance with the mmpmon command.
  2. Do not alter the input file while mmpmon is running.
  3. The input file must contain valid input requests, one per line. When mmpmon finds an invalid request, it issues an error message and terminates. The command processes input requests that appear in the input file before the first invalid request.

Security

The mmpmon command must be run by a user with root authority, on the node for which you want statistics.

The node on which the command is issued must be able to execute remote shell commands on any other node in the cluster without the use of a password and without producing any extraneous messages. For more information, see Requirements for administering a GPFS file system.

Examples

  1. Assume that infile contains these requests:
    ver
    io_s
    fs_io_s
    rhist off
    The following command is issued:
    mmpmon -i infile -r 10 -d 5000
    The output (sent to stdout) is similar to the following example output:
    mmpmon node 192.168.1.8 name node1 version 3.1.0
    mmpmon node 192.168.1.8 name node1 io_s OK
    timestamp:      1083350358/935524
    bytes read:              0
    bytes written:           0
    opens:                   0
    closes:                  0
    reads:                   0
    writes:                  0
    readdir:                 0
    inode updates:           0
    mmpmon node 192.168.1.8 name node1 fs_io_s status 1
    no file systems mounted
    mmpmon node 192.168.1.8 name node1 rhist off OK

    The requests in the input file are run 10 times, with a delay of 5000 milliseconds (5 seconds) between invocations.

  2. This example uses the same parameters as the previous example, but with the -p flag:
    mmpmon -i infile -p -r 10 -d 5000
    
    The output (sent to stdout) is similar to the following example output:
    _ver_ _n_ 192.168.1.8 _nn_ node1 _v_ 2 _lv_ 3 _vt_ 0
    _io_s_ _n_ 192.168.1.8 _nn_ node1 _rc_ 0 _t_ 1084195701 _tu_ 350714 _br_ 0 _bw_ 0 _oc_ 0
         _cc_ 0 _rdc_ 0 _wc_ 0 _dir_ 0 _iu_ 0
    _fs_io_s_ _n_ 192.168.1.8 _nn_ node1 _rc_ 1 _t_ 1084195701 _tu_ 364489 _cl_ - _fs_ -_rhist_ 
         _n_ 192.168.1.8 _nn_ node1 _req_ off _rc_ 0 _t_ 1084195701 _tu_ 378217
  3. This example uses the fs_io_s option with a mounted file system:
    mmpmon node 198.168.1.8 name node1 fs_io_s OK
    cluster: node1.localdomain
    filesystem: gpfs1
    disks: 1
    timestamp: 1093352136/799285
    bytes read: 52428800
    bytes written: 87031808
    opens: 6
    closes: 4
    reads: 51
    writes: 83
    readdir: 0
    inode updates: 11
    
    mmpmon node 198.168.1.8 name node1 fs_io_s OK
    cluster: node1.localdomain
    filesystem: gpfs2
    disks: 2
    timestamp: 1093352136/799285
    bytes read: 87031808
    bytes written: 52428800
    opens: 4
    closes: 3
    reads: 12834
    writes: 50
    readdir: 0
    inode updates: 9
  4. This example is the same as the previous one, but with the -p flag:
    _fs_io_s_ _n_ 198.168.1.8 _nn_ node1 _rc_ 0 _t_ 1093352061 _tu_ 93867 _cl_ node1.localdomain
     _fs_ gpfs1 _d_ 1 _br_ 52428800 _bw_ 87031808 _oc_ 6 _cc_ 4 _rdc_ 51 _wc_ 83 _dir_ 0 _iu_ 10
    _fs_io_s_ _n_ 198.168.1.8 _nn_ node1 _rc_ 0 _t_ 1093352061 _tu_ 93867 _cl_ node1.localdomain
      _fs_ gpfs2 _d_ 2 _br_ 87031808 _bw_ 52428800 _oc_ 4 _cc_ 3 _rdc_ 12834 _wc_ 50 _dir_ 0 _iu_ 8
    This output consists of two strings.
  5. This example uses the io_s option with a mounted file system:
    mmpmon node 198.168.1.8 name node1 io_s OK
    timestamp: 1093351951/587570
    bytes read: 139460608
    bytes written: 139460608
    opens: 10
    closes: 7
    reads: 12885
    writes: 133
    readdir: 0
    inode updates: 14
  6. This example is the same as the previous one, but with the -p flag:
    
    _io_s_ _n_ 198.168.1.8 _nn_ node1 _rc_ 0 _t_ 1093351982 _tu_ 356420 _br_ 139460608 
     _bw_ 139460608 _oc_ 10 _cc_ 7 _rdc_ 0 _wc_ 133 _dir_ 0 _iu_ 14
    
    This output consists of one string.
  7. This example uses an loc_io_s option to display the total size of local read data without filter.
    mmpmon node 192.168.116.106 name localhost loc_io_s OK
    cluster:                        sncfs.gpfs.net
    filesystem:                              *
    pool:                                    *
    timestamp:                      1494238949/181786
    bytes read:                       24158208
    local bytes read:                  9236480
    bytes written:                       65536
    local bytes written:                 32768
    reads:                                1914
    local reads:                           714
    writes:                                 16
    local writes:                            8
  8. This example is same as the previous one, but with f fs sncfs p datapool filters.
    mmpmon node 192.168.116.106 name localhost loc_io_s OK
    cluster:                        sncfs.gpfs.net
    filesystem:                          sncfs
    pool:                             datapool
    timestamp:                      1494238956/323617
    bytes read:                         114688
    local bytes read:                    59392
    bytes written:                           0
    local bytes written:                     0
    reads:                                  27
    local reads:                            14
    writes:                                  0
    local writes:                            0

Location

/usr/lpp/mmfs/bin