Índice del artículo

Identificando cuellos de botella

Cuando se reporta que la base de datos esta muy lenta podemos hacer uso de la herramienta vmstat (virtual memory statistics), pues muestra en tiempo real el desempeño de los procesos, memoria, paging, I/0 en el disco y CPU.

[oracle@m9 ~]$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 160264 48332 37540 1332692 1 1 52 120 13 32 14 6 80 1 0

Si wa (time waiting for I/O) es muy alto, generalmente nos indica que el sistema de storage esta sobrecargado. En este caso vea Monitoreando el I/O y Analizando el historico de I/O.

Si b (processes sleeping) es constantemente mayor a 0, entonces posiblemente no tengamos suficiente procesamiento (CPU). En este caso vea Identificando procesos con alto consumo de CPU.

Si so (memory swapped out of disk) y si (memory swapped in of disk) son constantemente mayores a 0, posiblemente se tengan problemas de memoria. En este caso ver Identificando procesos con alto consumo de memoria.

vmstat no se cuenta a si mismo como un proceso en ejecución.

Descripción de las columas de vmstat

 

Columna

Descripción

r

Número de procesos esperando a ser ejecutados

b

Número de procesos en sleep

swpd

Memoria virtual total (swap) en uso (KB)

free

Memoria total idle (KB)

buff

Memoria total utilizada como (KB)

cache

Memoria total usada como cache (KB)

si

Memory swapped in from disk (KB/s)

so

Memory swapped out to disk (KB/s)

bi

Bloques leidos del dispositivo (blocks/s)

bo

Bloques escritos al dispositivo(blocks/s)

in

Interrupciones por segundo

cs

Context switches por segundo

us

User-level code time as a percentage of total CPU time

sy

System-level code time as a percentage of total CPU time

id

Idle time como porcentaje del total del tiempo del CPU time

wa

Tiempo en espera para completer el I/O


Por default solo se nos va a mostrar una linea con estadísticas si ejecutamos solamente vmstat, la cuál es un promedio calculado desde que se inicio el servidor. Si se requiere extraer información de un periodo se usa con la siguiente sintaxis:

$ vmstat

Por ejemplo si quiero reportar estadisticas cada 2 segundos durante 10 intervalos

[oracle@m9 ~]$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 150016 51472 43944 1291344 1 1 52 120 26 9 14 6 80 1 0
0 0 150016 55432 43956 1291388 0 0 2 174 3106 4068 12 4 84 0 0
4 0 150016 55440 43976 1291488 0 0 2 42 3125 4059 12 8 80 0 0
0 0 150016 54704 43996 1292024 0 0 4 216 2995 4133 12 5 82 0 0
1 0 150016 54116 44000 1292728 0 0 6 2 3087 4083 12 4 83 0 0
0 0 150016 53200 44020 1293708 0 0 6 686 3012 4175 12 3 84 1 0
2 0 150016 56904 44040 1294480 0 0 6 194 3187 4274 12 5 83 1 0
0 0 150016 56780 44048 1294584 0 0 0 792 2970 3913 10 8 82 0 0
0 0 150016 56680 44072 1294636 0 0 0 208 3066 4322 12 4 84 0 0
1 0 150016 56656 44072 1294720 0 0 0 26 2955 4057 11 3 85 0 0

Ya si quisieromos guardar la información en algún archivo

[oracle@m9 ~]$ vmstat 2 10 > vmstat.out

Otra forma en la que podemos ejecutar vmstat es con la herramienta watch, la cual ejecuta el comando varias veces. Por ejemplo si queremos ejecutarlo cada 5 segundos:

[oracle@m9 ~]$ watch -n 5 -d vmstat

La opción -d nos va a desplegar las diferencias entre cada ejecución, para salir solo se presiona Ctrl+C

Si se quiere ver la información en MB se debe ejecutar de la siguiente manera:

[oracle@m9 ~]$ vmstat -S m
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
6 0 153 111 42 1268 0 0 52 120 27 11 14 6 80 1 0

 

You are not authorised to post comments.

Comments powered by CComment

DBASupport - Foro

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 3 years ago.
  • 3 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Estadisticas en la base de datos
Buenos días, estoy teniendo problemas de performance en mis queries y quisiera saber como puedo validar que mis tablas tienen las estadisticas...

Deshabilitar todos los jobs
  • Topic started by agamez
  • in Jobs
  • 4 years ago.
  • 4 years ago.
  • 1 reply
Buenos días, alguien sabe como puedo deshabilitar rapidamente todos los jobs de SQL Server, gracias.
Duada de Memoria de SQL Server 2005
  • Topic started by Erzengel
  • in General
  • 11 years ago.
  • 11 years ago.
  • 30 replies
Buen Día Recurro nuevamente a su sabiduría. Quiero saber el porque tiene un tope SQL Serever de 2GB en Windows server 2003 de 32 bit y si alguien...

SqlDateTime overflow
  • Topic started by
  • in General
  • 15 years ago.
  • 15 years ago.
  • 11 replies
Alguno de ustedes ha tenido este problema: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.' Les...

problemas para iniciar el agente sql
  • Topic started by acgch
  • in General
  • 14 years ago.
  • 14 years ago.
  • 11 replies
Recientemente para asegurar el sql server 2005, cree una cuenta sql con derechos de sysadmin y borre el grupo BUILTIN\Administradores para evitar...

Problemas para levantar mirror
  • Topic started by acgch
  • in General
  • 14 years ago.
  • 14 years ago.
  • 16 replies
Hola amigos, tengan un buen día, les comento que estoy configurando mirror siguiendo los pasos a través del wizard del managment studio y también...

Puerto de Enterprise Manager
  • Topic started by
  • in General
  • 13 years ago.
  • 13 years ago.
  • 12 replies
Hola, estoy tratando de acceder a mi enterprise manager de un oracle 10G, donde puedo ver en que puerto esta levantando para entrar desde mi...
Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 3 years ago.
  • 3 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Estadisticas en la base de datos
Buenos días, estoy teniendo problemas de performance en mis queries y quisiera saber como puedo validar que mis tablas tienen las estadisticas...

Deshabilitar todos los jobs
  • Topic started by agamez
  • in Jobs
  • 4 years ago.
  • 4 years ago.
  • 1 reply
Buenos días, alguien sabe como puedo deshabilitar rapidamente todos los jobs de SQL Server, gracias.
Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 3 years ago.
  • 3 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Estadisticas en la base de datos
Buenos días, estoy teniendo problemas de performance en mis queries y quisiera saber como puedo validar que mis tablas tienen las estadisticas...