Monitorizar estadísticas de una controladora NetApp con la instrucción stats

Los sistemas operativos Data ONTAP implementan el comando stats mediante el cual podemos monitorizar estadísticas de una controladora NetApp listando un número elevado de valores estadísticos tales como operaciones por segundo sobre un volumen o LUN, operaciones por protocolo (NFS, CIFS, iSCSI, FC), valores de latencia, valores sobre los discos físicos, interfaces de red,  etc.

Netapp> stats
 The following commands are available; for more information
 type "stats help "
 explain             list                start               stop
 help                show

     stats help - Display command help.
     stats list - List available objects, instances, counters or presets in system.
     stats explain - Explain available objects or counters in system.
     stats show - Show all or selected statistics with formatting.
     stats start - Start background statistic collection.
     stats stop - Stop all background operations and discard results.
Netapp>

Accediendo a la controladora en modo “admin”, modo predeterminado cuando iniciamos la sesión SSH, los objetos disponibles para consultar estadísticas se pueden obtener con el comando stats list objects. En realidad las estadísticas se consultan sobre instancias de esta lista de objetos puesto que en cada controladora encontramos varios discos, volúmenes, procesadores,…:

Netapp> stats list objects
 Objects:
 logical_replication_source  aggregate
 lun                         audit_ng
 ndmp                        cifs
 nfsv3                       disk
 processor                   dump
 qtree                       ext_cache_obj
 quota                       ext_cache
 raid                        fcp
 spinhi                      hostadapter
 system                      ifnet
 target                      iscsi_conn
 vfiler                      iscsi_lif
 volume                      iscsi
 avoa                        logical_replication_destination
Netapp>

Si necesitamos estadísticas más avanzadas podemos listar los objetos de la misma forma accediendo previamente al modo de diagnóstico con el comando priv set diag.

Para cada instancia de cualquier objeto monitorizado existen un conjunto de contadores que son los que contienen la información que podemos interpretar. El número total de contadores para todos los objetos lo podemos obtener con el comando stats list counters. Si queremos listar todas las instancias del sistema podemos usar el comando stats list instances o en el caso concreto de instancias de un mismo objeto podemos usar stats list instances “nombre_objeto”.

Todos los parámetros y sus detalles para este interesante comando los podemos encontrar en esta sección de las NetApp Manual Pages. Veamos a continuación algunos ejemplos de uso:

1) Estadísticas para el agregado aggr0: stats show -i 1 -c aggregate:aggr0

Con este comando estamos indicando que se nos muestren todos los contadores del objeto aggregate para la instancia aggr0 en intervalos de un segundo (-i 1 ) con una salida en formato columnas (-c ). Si queremos una salida con intervalos mayores aumentaremos el valor del parámetro –i. Para una salida en formato registros usaremos –r en vez de –c.

En este caso la lista de contadores para el objeto aggregate es la siguiente:

 instance_name:
 node_name:
 total_transfers:
 user_reads:
 user_writes:
 cp_reads:
 user_read_blocks:
 user_write_blocks:
 cp_read_blocks:

Conocidos los posibles contadores podemos combinarlos para obtener solamente aquellos datos que nos sean relevantes construyendo los comandos de la siguiente forma:

Netapp> stats show -i 1 -c aggregate:aggr0:user_reads
 Instance user_reads
 /s
 aggr0 154
 aggr0 150
 aggr0 101
 aggr0 166
 aggr0 236
Netapp>

En el ejemplo solamente listamos el contador user_reads de la instancia que ya conocemos. Si necesitamos más columnas las podemos anidar de la siguiente forma:

stats show -i 1 -c aggregate:aggr0:user_reads aggregate:aggr0:user_writes

Netapp> stats show -i 1 -c aggregate:aggr0:user_reads aggregate:aggr0:user_writes
 Instance user_reads user_writes
 /s /s
 aggr0 1515 27
 aggr0 1854 5
 aggr0 1469 0
 aggr0 1435 0
 aggr0 1746 8
Netapp>

Para cada contador que necesitemos listar indicaremos la “ruta nominativa” OBJETO:INSTANCIA:CONTADOR, todos ellos separados por un espacio. Con esta característica podemos listar instancias de objetos iguales o distintos y con instancias iguales o distintas todo ello con sus correspondientes contadores:

stats show -i 1 -c aggregate:aggr0:user_reads cifs:cifs:cifs_read_ops

Netapp> stats show -i 1 -c aggregate:aggr0:user_reads cifs:cifs:cifs_read_ops
 Instance user_reads
 /s
 Instance cifs_read_op
 /s
 aggr0 73
 cifs 0
 aggr0 657
 cifs 3
 aggr0 86
 cifs 67
 aggr0 78
 cifs 4
Netapp>

En este ejemplo listamos las estadísticas de lectura para los usuarios sobre el agregado aggr0 y a su vez las operaciones de lectura de cifs.

2) Estadísticas para el protocolo fcp (útil para entornos donde se estén usando LUNs Fibre Channel): stats show -i 1 -c fcp

Netapp> stats show -i 1 -c fcp
 Instance instance_nam node_name fcp_ops fcp_latency fcp_write_da fcp_read_dat
                                      /s          ms          b/s          b/s
      fcp          fcp                37        0.79       192587        13060
      fcp          fcp                18        0.33        71600        16792
      fcp          fcp                67        0.90       491592        52200
      fcp          fcp               102        1.05       290192        67792
      fcp          fcp                63        0.63       191976        31112
Netapp>

3) Estadísticas de un interfaz virtual denominado Ig0stats show -i 1 -c ifnet:Ig0

Netapp> stats show -i 1 -c ifnet:Ig0
 Instance instance_nam node_name recv_packets recv_errors send_packets send_errors collisions recv_data send_data recv_drop_pa
                                           /s          /s           /s          /s         /s       b/s       b/s           /s
      Ig0          Ig0                     25           0           10           0          0      2869      1596            0
      Ig0          Ig0                      8           0            1           0          0       586        98            0
      Ig0          Ig0                      9           0            3           0          0       680       714            0
      Ig0          Ig0                     13           0            2           0          0      1460       316            0
Netapp>

Podemos filtrar los contadores, como hemos visto anteriormente, por ejemplo para ver los paquetes enviados y recibidos: stats show -i 1 -c ifnet:Ig0:send_packets ifnet:Ig0:recv_packets

Netapp> stats show -i 1 -c ifnet:Ig0:send_packets ifnet:Ig0:recv_packets
 Instance send_packets recv_packets
                   /s           /s
     Ig0            8           17
     Ig0            1           10
     Ig0            2           10
     Ig0            2            6
     Ig0            2           10
Netapp>

4) Estadísticas del procesador: stats show -i 1 -c processor

Por cada núcleo de un socket de CPU se genera una instancia. Si tenemos un socket de 4 cores entonces tendremos 4 instancias que en general se denominan processor0, processor1, processor2 y processor3. En este caso nos puede interesar el porcentaje de ocupación de cada núcleo así que podemos usar el comando de la siguiente forma:

stats show -i 1 -c processor:processor0:processor_busy processor:processor1:processor_busy processor:processor2:processor_busy processor:processor3:processor_busy

Netapp> stats show -i 1 -c processor:processor0:processor_busy processor:processor1:processor_busy processor:processor2:processor_busy processor:processor3:processor_busy
 Instance        processor_bu
                            %
 processor0                 2
 processor1                 2
 processor2                 1
 processor3                 1
 processor0                 7
 processor1                10
 processor2                 8
 processor3                 7
Netapp>

5) Estadísticas sobre un volumen:

Datos leídos en b/s: stats show -i 1 -c volume:DATA_ONTAP:read_data

Datos escritos en b/s: stats show -i 1 -c volume:DATA_ONTAP:write_data

Latencia de escritura en micro segundos: stats show -i 1 -c volume:DATA_ONTAP:write_latency

Latencia de lectura en micro segundos: stats show -i 1 -c volume:DATA_ONTAP:read_latency

Número total de operaciones por segundo: stats show -i 1 -c volume:DATA_ONTAP:total_ops

Estos contadores son muy parecidos a los de las LUNs. En ese caso el objeto es LUN y el nombre de la instancia se compone de su ruta seguido del número de serie:

stats show -i 1 -c lun:/vol/Oracle_Datafiles/Oradata01gNnt$BGuauj:write_data

6) Por último veamos algunos ejemplos de contadores del objeto system que nos muestran valores globales:

IOPS de FCP: stats show -i 1 -c system:system:fcp_ops

IOPS de NFS: stats show -i 1 -c system:system:nfs_ops

IOPS de CIFS: stats show -i 1 -c system:system:cifs_ops

IOPS de lectura: stats show -i 1 -c system:system:read_ops

IOPS de escritura: stats show -i 1 -c system:system:write_ops

KB/s de datos leídos: stats show -i 1 -c system:system:disk_data_read

KB/s de datos escritos: stats show -i 1 -c system:system:disk_data_written

Para finalizar esta entrada comentar que existen los denominados presets, ubicados en la ruta /etc/stats/preset, que son archivos XML que contienen estructuras combinadas de instancias y contadores con un formato de salida definido y que nos ayuda a agrupar toda aquella información estadística necesaria con solo especificar el parámetro -p #nombre_preset. La estructura básica de estos archivos es la siguiente:

<?xml VERSION = “1.0” ?>
<preset>
<object name=”nombre”>
</object> </preset>

Para conocer más detalles y ejemplos de presets podemos consultar esta sección de las NetApp Manual Pages.


Licencia de Creative Commons

This Post by David Solé Pérez is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

Pagina Principal

¿Te ha gustado este artículo? ¡Suscríbete!

Monitorizar estadísticas de una controladora NetApp con la instrucción stats
4.7 (94.29%) 7 votos

Artículos Relacionados

David Solé Pérez

Autor: David Solé Pérez

Services Director en ID Grup S.A. - Team Leading, Cloud Architect, Project Management, Solutions Architect, IT Consulting , Systems Integration & Deployment

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *