mmlsqos command

Displays the I/O performance values of a file system, when you enable Quality of Service for I/O operations (QoS) with the mmchqos command.

Synopsis

mmlsqos Device
        [--pool {all | Pool}] 
        [--seconds Seconds] 
        [--sum-classes {yes | no}] 
        [--sum-nodes {yes | no}]

Availability

Available on all IBM Spectrum Scale™ editions.

Description

Run the mmlsqos command to display the I/O performance of QoS classes. Each storage pool has two QoS classes:
  • A maintenance class for I/O-intensive, potentially long-running GPFS™ commands.
  • An other class for all other processes.
You allocate shares of IOPS to QoS classes with the mmchqos command.
Remember the following points:
  • Allocations persist across unmounting and remounting the file system.
  • QoS stops applying allocations when you unmount the file system and resumes when you remount it.
  • When you change allocations or mount the file system, a brief delay due to reconfiguration occurs before QoS starts applying allocations.
For more information about this command, see the topic Setting the Quality of Service for I/O operations (QoS) in the IBM Spectrum Scale: Administration and Programming Reference.

When the file system is mounted, the command displays information about the QoS classes of both explicitly named pools and residual pools. Residual pools are storage pools that you have not specified by name in any mmchqos command. When the file system is unmounted, the command displays information about only the QoS classes of explicitly named pools.

Parameters

Device
The device name of the file system to which the QoS action applies.
--pool
Display the I/O performance values for all QoS pools if all is specified, or for the named pool if a pool name is specified. The default is all.
--seconds
Display the I/O performance values for the previous number of seconds. The valid range of seconds is 1-999. The default value is 60 seconds. The values are displayed for subperiods within the period that you specify. The subperiods might be every 5 seconds over the last 60 seconds, or every 60 seconds over the last 600 seconds. You cannot configure the number or length of subperiods.
--sum-classes
Display the I/O performance for each QoS class separately if no is specified, or summed across all the QoS classes if yes is specified. The default is no.
--sum-nodes
If yes is specified, display the I/O performance summed across all the nodes in the cluster. If no is specified, display the I/O performance for each node separately. The default is yes.

Exit status

0
Successful completion.
Nonzero
A failure occurred.

Security

You must have root authority to run the mmlsqos command.

The node on which you enter the command must be able to execute remote shell commands on any other administration node in the cluster. It must be able to do so without the use of a password and without producing any extraneous messages. For more information, see Requirements for administering a GPFS file system in the IBM Spectrum Scale: Administration and Programming Reference.

Analyzing the output from mmlsqos

Figure 1. Sample output from mmlsqos
# mmlsqos fs0 --seconds 30
QOS cfg::        enabled -- pool=system,other=inf,maintenance=400Iops
QOS status::     throttling active, monitoring active
=== for pool system
15:14:45 other iops=314.4 ioql=4.3 qsdl=0.0 et=5
15:14:45 maint iops=215.2 ioql=3.2 qsdl=0.0 et=5
15:14:50 other iops=308.8 ioql=4.1 qsdl=0.0 et=5
15:14:50 maint iops=263.2 ioql=3.7 qsdl=0.0 et=5
15:14:55 other iops=281.8 ioql=4.0 qsdl=0.0 et=5
15:14:55 maint iops=274.8 ioql=3.9 qsdl=0.0 et=5
15:15:00 other iops=267.0 ioql=4.0 qsdl=0.0 et=5
15:15:00 maint iops=268.4 ioql=3.9 qsdl=0.0 et=5
15:15:05 other iops=256.8 ioql=4.0 qsdl=0.0 et=5
15:15:05 maint iops=252.4 ioql=3.9 qsdl=0.0 et=5
15:15:10 other iops=245.4 ioql=4.0 qsdl=0.0 et=5
15:15:10 maint iops=263.6 ioql=3.9 qsdl=0.0 et=5
In the preceding figure, the command mmlsqos fs0 --seconds 30 requests a display of I/O performance values over the previous 30 seconds. It requests these values for all QoS pools, for each QoS class separately, and summed across all the nodes in the cluster. The first line of output indicates that QoS is enabled, that the other class is set to unlimited, and that the maintenance class is set to 400 IOPS. The second line indicates that allocation is active and being monitored.
The remainder of the output shows the I/O performance values for subperiods of 5 seconds over the total period of 30 seconds. The column values are as follows:
First column
The time when the measurement period ends.
Second column
The QoS class for which the measurement is made.
iops=
The performance of the class in I/O operations per second.
ioql=
The average number of I/O requests in the class that are pending for reasons other than being queued by QoS. This number includes, for example, I/O requests that are waiting for network or storage device servicing.
qsdl=
The average number of I/O requests in the class that are queued by QoS. When the QoS system receives an I/O request from the file system, QoS first finds the class to which the I/O request belongs. It then finds whether the class has any I/O operations available for consumption. If not, then QoS queues the request until more I/O operations become available for the class. The Qsdl value is the average number of I/O requests that are held in this queue.
et=
The interval in seconds during which the measurement was made.

You can calculate the average service time for an I/O operation as (Ioql + Qsdl)/Iops. For a system that is running IO-intensive applications, you can interpret the value (Ioql + Qsdl) as the number of threads in the I/O-intensive applications. This interpretation assumes that each thread spends most of its time in waiting for an I/O operation to complete.

Examples

  1. The following command displays the I/O performance values for all the pools in the file system over the previous 60 seconds. It does so for each QoS class separately and summed across all the nodes in the cluster.
    mmlsqos fs0 --seconds 60
  2. The following command displays the I/O performance values for the named pool over the previous 60 seconds. It does so for each QoS class separately and for each node separately.
    mmlsqos fs0 --pool pname0 --sum-nodes no

Location

/usr/lpp/mmfs/bin