View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Comandos de analisis de rendimiento en Solaris

Esto es un recopilatorio de distintos comando que existen en Solaris para hacer una analisis exhaustivo del rendieminto de la máquina y sus recursos (memoria, disco duro, etc...).

Dicho recopilatorio se ha creado con todos los comandos usados en el análisis del problema de "lentitud" que existía en MetroSur. AL final se llegó a la conclusión que el causante del bajo rendimiento de la máquina era el disco duro (Seagate de 20 GB).

Los comandos usados (descripción de las columnas y parámetros a usar y qué resultados indican posibles problemas) son:

  • iostat -Cnx
    elcasar 1% iostat -Cnx
                        extended device statistics
        r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device
        1.3   18.7    9.2  118.4  0.4  0.0   20.8    1.9   1   2 c0
        1.3   18.7    9.2  118.4  0.4  0.0   20.8    1.9   1   2 c0d0
        0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0 fd0
        0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0 elcasar:vold(pid291)
    

    La columna "asvc_t" nos dice el tiempo medio (en ms) de un acceso al dispositivo de la columna "device". La columna "wsvc_t" nos dice el tiempo medio de espera para acceder al dispositivo (el tiempo que estamos en la cola hasta que podemos usar el dispositivo).
    La columna "r/s" son las lecturas que hacemos por segundo, y la columna "w/s" son las escrituras que hacemos por segundo"
    En el ejemplo anterior tenemos un rendimiento bastante aceptable en comparación con el siguiente ejemplo que tenía un disco de los antes mencionados:
    alcorcon 1% iostat -Cnx
                        extended device statistics
        r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device
        0.7   22.9   12.9  147.6  9.3  0.9  395.8   38.9  37  49 c0
        0.7   22.9   12.9  147.6  9.3  0.9  395.8   38.9  37  49 c0d0
        0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0 fd0
        0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0 alcorcon:vold(pid292)
    

  • mpstat
    elcasar 1% mpstat
    CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
      0   80   0    0   415  315  503   23    0    1    0  3675    2   4   1  93
    

    Este comando nos muestra las estadisticas de rendimiento que tiene el kernel de los ultimos instantes para cada uno de los procesadores del sistema. La columna más útil es la última, "idl" ya que podemos tener el idle de la máquina en el momento sin tener que esperar a que nos lo de el "sar" (normalmente configurada cada 5 minutos), o peor aún, si el "sar" no está activado.

    En el caso de un máquina con el disco duro que daba problemas el resultado de este comando es:

    alcorcon 5% mpstat
    CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
      0   92   0    0   426  326  495   25    0   16    0  4252    2   8  29  61
    


  • vmstat
    elcasar 2% vmstat
     procs     memory            page            disk          faults      cpu
     r b w   swap  free  re  mf pi po fr de sr cd f0 -- --   in   sy   cs us sy id
     0 0 0 856944 377008 16  80  8 15 15  0  0 20  0  0  0  314 3675  503  2  4 94
    

    En este comando podemos ver cual es el swap disponible (columna "swap") y cuanta tenemos libre (columna "free").

    El sr es muy importante, debe ser bajo (si es 200, es que está "trashing...").
    Otro ejemplo del comando en una máquina con el disco problemático:

    alcorcon 4% vmstat
     procs     memory            page            disk          faults      cpu
     r b w   swap  free  re  mf pi po fr de sr cd f0 -- --   in   sy   cs us sy id
     0 0 0 850876 368712 18  92  3 22 22  0  0 24  0  0  0  326 4252  495  2  8 90
    


  • prtconf
    Este comando nos muestra la siguiente configuración del sistema: memoria RAM y los distintos dispositivos detectados incluyendo si el driver ha sido cargado o no.

  • sysdef
    Este comando nos muestra la configuración de los dispositivos del sistema, los pseudo-devices, los módulos cargados en el kernel, y algunos parametros del kernel.

  • dmesg
    Nos muestra las últimas líneas del fichero "/var/adm/messages".


Por otra parte, existe otra herramienta para el análisis del rendimiento llamada "sdtperfmeter". Dicha herramienta tiene un fichero de configuración que se ubica en el directorio de usuario: "/home/metro/.dt/sessions/dtperf".

Por último, y siguiendo el tema del disco duro, para habilitar el Acceso Directo a Memoria, o DMA en inglés, para incrementar el rendimiento de acceso al mismo hay que seguir los siguientes pasos:

  • En el arranque del sistema entrar en el "Device Configuration Assistant"
  • Pulsar F2_Continue para escanear los dispositivos.
  • Pulsar F2_Continue para mostrar la lista de los dispositivos de arranque.
  • Pulsar F4_Boot Tasks y seleccionar "View/Edit Property Settings"
  • Pulsar F2_Continue.
  • Cambiar el valor a 1 de la propiedad "ata-dma-enabled". Con un 0 deshabilitariamos el DMA.
    - Seleccionar la propiedad "ata-dma-enabled" de la lista y pulsar F3_Change.
    - Introducir "1" y pulsar F2_Continue para habilitarlo.
    - Pulsar F2_Back y depues F3_Back para volver al menu de arranque de Solaris.
    - Seleccionar el dispositivo de arranque y pulsar F2_Continue.