Este es uno de una serie de artículos sobre cómo usar innotop, un monitor MySQL e InnoDB. En este artículo explicaré cómo innotop puede hacer que sea mucho más fácil recopilar información útil de SHOW STATUS
y SHOW VARIABLES
en un solo lugar. Hay tres modos en innotop que hacen esto de diferentes maneras, por lo que uno de ellos puede satisfacer sus necesidades.
Introducción
La salida de SHOW STATUS
y SHOW VARIABLES
es una de las herramientas más útiles para solucionar problemas de un servidor MySQL y tener una idea de lo bien que se está ejecutando, en qué tipo de carga de trabajo se encuentra, etc. En caso de que no esté familiarizado con estos, le recomiendo que lea sobre ellos en el manual de MySQL antes de leer el resto de este artículo. Sacarás más provecho del artículo si entiendes qué información hay detrás de mis ejemplos.
El método más básico para obtener estas variables es emitir un comando SHOW
, pero el resultado es bastante seguro que será una sobrecarga de información, incluso si usa LIKE
para restringir los resultados. Otra cosa que a menudo necesita saber es cómo cambian los valores con el tiempo; ¿cuántos escaneos de tablas ocurren por segundo, por ejemplo? Es difícil comparar los resultados de los comandos SHOW
rápidamente, pero debe hacerlo para comprender lo que está sucediendo en el servidor.
La herramienta clásica para esto es la propia de MySQL mysqladmin
. Puede ejecutarlo con los argumentos -i
y -r
para indicarle que siga imprimiendo valores de vez en cuando e imprima la diferencia con el último conjunto de valores cuando lo haga. Un comando básico para observar variables de estado podría ser el siguiente:
mysqladmin extended -i10 -r
Puede canalizarlo a través de grep
para filtrar un poco los resultados también.
Claramente hay mucho margen de mejora. He incluido tres formas diferentes de ver esta información de manera más fácil y flexible en innotop, y las explicaré a continuación.
Método uno: Modo V
Antes de comenzar: Si aún no lo ha hecho, debe descargar e instalar innotop y ejecutar estos ejemplos en su propio servidor. Es mucho más interesante cuando puedes ver cómo se está ejecutando tu propio servidor. Y si no ha actualizado a la última y mejor versión de innotop, vale la pena hacerlo; hay muchas más funciones en cada nueva versión. Específicamente, voy a mostrar algunas características solo disponibles en la versión 0.1.139.
Bien, a lo bueno. Inicie innotop y cambie al modo V con la tecla» V». V significa «Variables y estado».»Muestra una tabla con una fila para cada valor elegido y una columna para cada conjunto de valores que desea ver. Los valores se pueden elegir de cualquier cosa que pueda encontrar en SHOW STATUS
o SHOW VARIABLES
.
Déjame explicarte un poco más. La columna de la izquierda muestra los valores que he elegido para mostrar. Cada fila tiene un valor. Al ir a la derecha, se ven los valores en sí mismos. Primero se ven los valores más actuales, luego los anteriores, y así sucesivamente—hasta la columna de la extrema derecha.
Hay un par de cosas a tener en cuenta sobre esta pantalla:
- La pantalla es incremental. Es decir, no estoy mostrando los valores reales aquí. Estoy mostrando la diferencia entre instantáneas. Puede ver que el valor
Uptime
se incrementa en 60 en cada columna sucesiva. Eso es porque he elegido un tiempo de sueño de 60 segundos entre instantáneas. (Por lo general, elijoUptime
como primer valor para poder ver qué rango de tiempo se muestra). - La columna de extrema derecha no es incremental. Esto se debe a que es la instantánea más antigua que innotop tiene en la memoria, por lo que no hay nada anterior que restar de ella. Además, no siempre quieres saber la diferencia entre los valores. A veces quieres saber el valor en sí. Esto le da una línea de base para que pueda ver los valores incrementales y absolutos al mismo tiempo.
- La segunda línea de la pantalla, encima de la tabla de valores, muestra las opciones de visualización actuales. Puede ver que incremental está activado y que el promedio por segundo está desactivado. Puede alternar esto con las teclas » i «y » a», para que pueda cambiar instantáneamente entre varias vistas de los datos.
- La pantalla de números largos está activada. Puedes activarlo y desactivarlo con la tecla » l «(que es una» L » en minúsculas) para una pantalla más compacta.
Es una forma bastante compacta de ver 8 minutos de historial para el servidor, ¿no está de acuerdo? Puede obtener fácilmente mucha más información de esta pantalla que con los otros métodos que he discutido. ¡Pero hay más!
- Incluyo varias opciones predefinidas de valores para mostrar con innotop. Puede alternar entre ellos con las teclas » 0 » a «9». Hay ajustes preestablecidos para la caché de consultas, análisis de tablas e índices, variables InnoDB, declaraciones de transacciones y más. En general, hay espacio para diez conjuntos de valores.
- Puede personalizar cada conjunto con la tecla «c». Elija y elija entre cualquier valor en ESTADO y VARIABLES, como dije. Esto se guarda en su archivo de configuración, para que esté allí cuando salga y reinicie innotop.
- Puede elegir el número de instantáneas que desea mostrar, de 2 a 9, para que pueda decidir cuánto historial desea ver en una pantalla.
Método 2: modelado según tload
Otra forma de monitorear estas variables es dibujar un gráfico con el estilo de tload
. La teoría detrás de este modo es que elija unos pocos valores (con la tecla «c», como de costumbre) e innotop escalará el promedio por segundo de los valores contra el máximo que haya visto, y lo usará para dibujar un gráfico bonito. Se ingresa al modo gráfico con la tecla» G».
Esto no es exactamente como tload
, porque el gráfico se ejecuta de arriba a abajo, no de izquierda a derecha. Imprime un encabezado periódicamente, incluido el» valor máximo » con el que se está escalando.
En la práctica, todavía no lo he entendido bien. No estoy seguro de cómo escalarlo. No tengo problemas para hacer cálculos, pero escalar contra «el valor máximo que se haya visto» no parece producir buenos resultados. A veces resulta en un buen gráfico; otras veces no. Sigo pensando que debe haber una buena manera de calcular la carga real del servidor, para que se pueda graficar de manera significativa, pero no se me ocurre. Alguna sugerencia?
no estoy muy contento con este modo. Si no puedo encontrar una manera de hacerlo más útil, puedo deshacerme de esta funcionalidad, aunque solo sean unas pocas líneas de código.
Método 3: modelado según vmstat
Mi compañero de trabajo John anticipó que el gráfico no sería tan útil, para su crédito, y me preguntó si podía imitar vmstat
y iostat
en lugar de dibujar un gráfico. El resultado es el modo «S». Puede imprimir la misma información que el modo «G», excepto que imprime valores en lugar de un gráfico.
Creo que esto es más útil que el modo «G», aunque es algo redundante al modo «V» que demostré anteriormente. Debido a que los valores se distribuyen por toda la pantalla y el tiempo fluye de la parte inferior a la parte superior de la pantalla, puede colocar menos valores en la pantalla, pero puede ver una ventana de tiempo más larga.
Resumen de los modos
Acabo de mostrarle tres modos que innotop tiene para monitorear el estado y la información variable desde un servidor MySQL:
- «El modo V» imprime una tabla de instantáneas, con muchas opciones diferentes.
- El modo » G » intenta imprimir un gráfico, pero no siempre hace un buen trabajo.
- El modo » S «imprime algo similar al modo» V», pero los datos se presentan de manera diferente.
Los tres modos son básicamente diferentes formas de ver los mismos valores. Hay cierta redundancia entre ellos, pero debido a que requiere tan poco código para hacer cada uno de ellos, no me importa la redundancia desde el punto de vista de la codificación. No me importa mantener tres características con funcionalidad similar, si da más formas de usar el monitor.
Si tiene alguna sugerencia de mejoras, estoy esperando noticias suyas :- )
Resumen
En este artículo expliqué la forma anticuada de monitorear la salida de SHOW STATUS
y SHOW VARIABLES
, y luego le mostré cómo innotop puede hacer esto mucho más rápido y fácil, y espero que le brinde suficientes vistas diferentes sobre los datos para que pueda encontrar una que le guste.
Manténgase atento para obtener más información sobre innotop; ¡hay mucho más que contar! Puede suscribirse a través de feeds o correo electrónico para mantenerse al día.