Anuncios

Bienvenidos sean a este post, hoy veremos que opciones tenemos para monitorear la comprension.

Anuncios

Para poder hacer el monitoreo de las compresiones se utilizan unas tablas de la base information_schema, vamos a ver cuales son estas tablas:

MariaDB [(none)]> show tables from information_schema like 'INNODB_CMP%';
+--------------------------------------------+
| Tables_in_information_schema (INNODB_CMP%) |
+--------------------------------------------+
| INNODB_CMPMEM                              |
| INNODB_CMP_PER_INDEX                       |
| INNODB_CMP                                 |
| INNODB_CMP_RESET                           |
| INNODB_CMPMEM_RESET                        |
| INNODB_CMP_PER_INDEX_RESET                 |
+--------------------------------------------+
6 rows in set (0.001 sec)

MariaDB [(none)]>
Anuncios

De estas tablas las mas importantes son las siguientes:

  • INNODB_CMPMEM, esta almacena las estadisticas de las paginas de tablas comprimidas en el pool de buffers
  • INNODB_CMP, esta almacena informacion sobre las operaciones de compresion y descompresion en todo el server
  • INNODB_CMP_PER_INDEX, este almacena informacion similar a la anterior pero la informacion es agrupada por tablas e indices individuales
Anuncios
Anuncios

Las tablas restantes (las terminadas con _RESET) son muy similares a las anteriores pero estas solo almacenaran datos relacionados a los reseteos, es posible hacer queries sobre las tablas de reset cada cierto tiempo para monitorear como la performance de las tablas comprimidas varia con el tiempo, puede suceder que la informacion almacenada en INNODB_CMP_PER_INDEX e INNODB_CMP_PER_INDEX_RESET puede ser muy grande, por lo que en general se mantienen vacias al menos que se establezca el valor de ON a la variable innodb_cmp_per_index_enabled, aunque usualmente este no es el caso de los servidores de produccion.

Anuncios

Vamos a hablar sobre las tres tablas comentadas, para ello primero veamos las columnas que componen a la tabla INNODB_CMPMEM:

  • page_size, este es el tamaño de la pagina en kilobytes
  • buffer_pool_instance, este es el id de la instancia del pool de buffers
  • pages_used, este es el numero de las paginas usadas actualmente
  • pages_free, este es el numero de las paginas libres actualmente
  • relocation_ops, este es el numero de veces que las paginas fueron movidas
  • relocation_time, este es el tiempo transcurrido en milisegundos del movimiento de las paginas
Anuncios

En general las columnas son bastante directas en la informacion que devuelven, salvo el caso de pages_free donde lo normal seria que tenga el valor de 1 pero las fragmentaciones haran que el valor de esta columna sea mucho mas alto, con todo esto hablado pasemos a hablar de las columnas de la tabla INNODB_CMP_PER_INDEX:

  • database_name, el nombre de la base de datos que contiene al indice
  • table_name, el nombre de la tabla que contiene al indice
  • index_name, estas son las columnas de agrupacion
  • compress_ops, indica el numero de veces que los cambios del log de modificacion son aplicados a una pagina
  • compress_ops_ok, indica el numero de veces que las operaciones del log de modificacion fueron exitosas
  • compress_time, indica el tiempo pasado en segundos mientras se comprimen los datos
  • uncompress_ops, indica el numero de operaciones de descompresion
  • uncompress_time, indica el tiempo pasado en segundos durante la operacion de descompresion
Anuncios

Pasemos a las columnas de la tabla INNODB_CMP:

  • page_size
  • compress_ops
  • compress_ops_ok
  • compress_time
  • uncompress_ops
  • uncompress_time
Anuncios
Anuncios

Como pueden la mayoria de las columnas son iguales a las vistas en la tabla anterior pero esta vez tambien tenemos a page_size la cual tambien almacena el tamaño de la pagina, otra diferencia con las otras tablas es que los valores de esta son globales y no agrupados por tablas o indices, si bien esta tabla es menos util pero recolectar su informacion ocupa menos recursos haciendo que esta tabla siempre contenga informacion, por ultimo las tablas que informan los resets de cada una de las antes comentadas cada que reciben un query resetean los valores de las tablas relacionadas a ellas.

Anuncios

En resumen, hoy hemos visto como se monitorea la compresion de las tablas, a traves de cuales elementos, la informacion que poseen, las columnas que poseen las que mas usaremos, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50

Anuncio publicitario