lunes, 2 de junio de 2014

Aprende acerca de las variables de estado del servidor


El servidor mantiene muchas variables de estado que proveen de información sobre sus operaciones. Puede ver estas variables y sus valores utilizando la sentencia SHOW STATUS:
mysql> SHOW STATUS;
+-----------------------------------+------------+
| Variable_name | Value |
| Aborted_clients | 0 |
+-----------------------------------+------------+ | Aborted_connects | 0 |
 … | Connections | 30023   
| Bytes_received | 155372598 | | Bytes_sent | 1176560426 | |
ated_tmp_tables | 2 | …  
| Created_tmp_disk_tables | 0 | | Created_tmp_files | 3 | | Cr e| Threads_created | 217 | | Threads_running | 88 | | Uptime | 1389872 |
+-----------------------------------+------------+
Muchas variables de estado son inicializadas a 0 por la sentencia FLUSH STATUS.
Las variables de estado tienen los siguientes significados. Las variables en las que no se indica versión están presentes en MySQL 5.0. Para información a propósito de su historial de implementación, consulte Manual de referencia de MySQL 4.1.
  • Aborted_clients
    El número de conexiones que han sido abortadas debido a que el cliente murió sin cerrar la conexión apropiadamente. Consulte Sección A.2.10, “Errores de comunicación y conexiones abortadas”.
  • Aborted_connects
    El número de intentos de conexión al servidor MySQL que han fallado. Consulte Sección A.2.10, “Errores de comunicación y conexiones abortadas”.
  • Binlog_cache_disk_use
    El número de transacciones que han utilizado la cache temporal del registro binario pero han excedido el valor debinlog_cache_size y utilizado un archivo temporal para almacenar las sentencias de la transacción.
  • Binlog_cache_use
    El número de transacciones que han utilizado la cache temporal del registro binario.
  • Bytes_received
    El número de bytes recibidos desde todos los clientes.
  • Bytes_sent
    El número de bytes enviados hacia todos los clientes.
  • Com_xxx
    Las variables del contador de sentencias Com_xxx indica el número de veces que cada sentencia xxx ha sido ejecutada. Existe una variable de estado por cada tipo de sentencia. Por ejemplo Com_delete y Com_insertcuentan sentencias DELETE and INSERT, respectivamente.
    Las variables de estado Com_stmt_xxx fueron añadidas en 5.0.8:
    • Com_stmt_prepare
    • Com_stmt_execute
    • Com_stmt_fetch
    • Com_stmt_send_long_data
    • Com_stmt_reset
    • Com_stmt_close
    Estas variables representan comandos de sentencias preparadas. Sus nombres se refieren a los comandosCOM_xxx utilizados en la capa de red; en otras palabras: Sus valores son incrementados siempre que las llamadas de la API de sentencias preparadas como mysql_stmt_prepare()mysql_stmt_execute(), etc. son ejecutadas. Asímismo,Com_stmt_prepareCom_stmt_execute y Com_stmt_close se incrementan también cuando alguien ejecuta las siguientes sentencias SQL: PREPAREEXECUTE, or DEALLOCATE respectivamente.Com_stmt_fetch representa el número total de comunicaciones de red ejecutadas al recibir datos de los cursores
    Todas las variables Com_stmt_xxx son incrementadas aunque el argumento de una sentencia preparada sea desconocido u ocurra un error durante la ejecución. Es decir, sus valores corresponden al número de peticiones recibidas, no al número de peticiones completadas con éxito.
  • Connections
    El número de instentos de conexión (con éxito o no) al servidor MySQL.
  • Created_tmp_disk_tables
    El número de tablas temporales en disco creadas automáticamente por el servidor mientras ejecutaba sentencias.
  • Created_tmp_files
    Número de arhcivos temporales que mysqld ha creado.
  • Created_tmp_tables
    El número de tablas temporales en memoria creadas automáticamente por el servidor mientras ejecuta sentencias. Si Created_tmp_disk_tables es grande, quizá querría aumentar el valor de tmp_table_size para causar que las tablas sean basadas en memoria en vez de basadas en disco.
  • Delayed_errors
    El número de registros escritos con INSERT DELAYED en los que algún error ocurrió (probablemente duplicate key).
  • Delayed_insert_threads
    El número de hilos gestores de INSERT DELAYED en uso.
  • Delayed_writes
    El número de registros INSERT DELAYED escritos
  • Flush_commands
    El número de comandos FLUSH ejecutados.
  • Handler_commit
    El número de sentencias COMMIT internas.
  • Handler_discover
    El servidor MySQL puede preguntar al motor de almacenamiento NDB Cluster si conoce una tabla con un nombre dado. Esto se llama descubrimiento (discovery). Handler_discover indica el número de veces que se han descubierto tablas mediante este mecanismo.
  • Handler_delete
    El número de veces que se han borrado registros de tablas.
  • Handler_read_first
    El número de veces que se lee la primera entrada de un índice. Si este valor es alto, indica que el servidor está haciendo muchos escaneos "full index"; por ejemplo, SELECT col1 FROM foo, suponiendo que col1 está indexada.
  • Handler_read_key
    El número de peticiones para leer un registro basadas en una clave. Si este número es alto, es una buena indicación de que las consultas y tablas están indexadas adecuadamente.
  • Handler_read_next
    El número de peticiones para leer el siguiente registro en el orden de la clave. Esto se incrementa cada vez que se está consultando una columna indexada con una restricción de rango, o si se está haciendo un escaneo de índice.
  • Handler_read_prev
    El número de peticiones para leer el registro previo en el orden de la clave. Este método de lectura es utilizado principalmente para optimizar ORDER BY ...DESC.
  • Handler_read_rnd
    El número de peticiones para leer un registro basándose en una posición fija. Es alto si se están haciendo muchas consultas que requieren ordenación del resultado. Probablemente tenga muchas consultas que requieran que MySQL escanee tablas completas o tiene joins que no utilizan claves adecuadamente.
  • Handler_read_rnd_next
    El número de peticiones para leer el siguiente registro en el archivo de datos. Éste es alto si está haciendo muchos escaneos de tablas. Generalmente esto sugiere que las tablas no están indexadas adecuadamente o que las consultas no están escritas para obetner ventaja de los índices que se tienen.
  • Handler_rollback
    El número de sentencias ROLLBACK internas.
  • Handler_update
    El número de peticiones de modificación de un registro en una tabla.
  • Handler_write
    El número de peticiones de inserción de un registro en una tabla.
  • Innodb_buffer_pool_pages_data
    El número de páginas que contienen datos (procesados o no). Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_pages_dirty
    El número de páginas sin procesar. Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_pages_flushed
    El número de páginas del buffer sobre las que se ha hecho una petición de volcado. Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_pages_free
    El número de páginas libres. Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_pages_latched
    El número de páginas bloqueadas en el buffer InnoDB. Estas son las páginas que están siendo actualmente leidas o escritas o que no pueden ser volcadas o borradas por alguna otra razón. Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_pages_misc
    El número de páginas ocupadas porque han sido seleccionadas para procesos administrativos, como bloqueos de registro o el índice de hash adaptativo. Este valor puede ser también calculado comoInnodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free -Innodb_buffer_pool_pages_data. Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_pages_total
    Tamaño total del buffer, en páginas. Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_read_ahead_rnd
    El número de lecturas avanzadas ``aleatorias'' que InnoDB ha iniciado. Esto pasa cuando una consulta necesita escanear una gran poción de una tabla pero en orden aleatorio. Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_read_ahead_seq
    El número de lecturas avanzadas secuenciales que InnoDB ha iniciado. Esto pasa cuando InnoDB realiza un escaneo secuencial completo de una tabla. Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_read_requests
    El número de peticiones lógicas de lectura que InnoDB ha hecho. Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_reads
    El número de lecturas lógicas del buffer que InnoDB no pudo satisfacer y tuvo que hacer una lectura de una única página. Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_wait_free
    Normalmente, las escrituras al buffer de InnoDB se llevan acabo en segundo plano. Aún así, si es necesario leer o crear una página y no existe ninguna página vacía disponible, entonces es también necesario esperar a que las páginas sean volcadas previamente. Este contador cuenta las instancias de estas esperas. Si el tamaño del buffer ha sido establecido correctamente, este valor debería ser pequeño. Añadido en MySQL 5.0.2.
  • Innodb_buffer_pool_write_requests
    El número de escrituras hechas al buffer de InnoDB. Añadido en MySQL 5.0.2.
  • Innodb_data_fsyncs
    El número de operaciones fsync() total. Añadido en MySQL 5.0.2.
  • Innodb_data_pending_fsyncs
    El número de operaciones fsync() pendientes. Añadido en MySQL 5.0.2.
  • Innodb_data_pending_reads
    El número actual de lecturas pendientes. Añadido en MySQL 5.0.2.
  • Innodb_data_pending_writes
    El número actual de escrituras pendientes. Añadido en MySQL 5.0.2.
  • Innodb_data_read
    El total de datos leidos, en bytes. Añadido en MySQL 5.0.2.
  • Innodb_data_reads
    El número total de lecturas de datos. Añadido en MySQL 5.0.2.
  • Innodb_data_writes
    El número total de escrituras de datos. Añadido en MySQL 5.0.2.
  • Innodb_data_written
    El total de datos escritos, en bytes. Añadido en MySQL 5.0.2.
  • Innodb_dblwr_writes , Innodb_dblwr_pages_written
    El número de operaciones doublewrite que se han ejecutado y el número de páginas que se han escrito para ello. Añadido en MySQL 5.0.2. Consulte Sección 15.14.1, “E/S de disco (Disk I/O)”.
  • Innodb_log_waits
    El número de esperas debidas a que el registro del buffer era demasiado pequeño y se tuvo que esperar a que fuese volcado antes de continuar. Añadido en MySQL 5.0.2.
  • Innodb_log_write_requests
    El número de peticiones de escritura al registro. Añadido en MySQL 5.0.2.
  • Innodb_log_writes
    El número de escrituras físicas al archivo de registro. Añadido en MySQL 5.0.2.
  • Innodb_os_log_fsyncs
    El número de escrituras fsync() realizadas al archivo de registro. Añadido en MySQL 5.0.2.
  • Innodb_os_log_pending_fsyncs
    El número de operaciones fsync() del archivo de registro. Añadido en MySQL 5.0.2.
  • Innodb_os_log_pending_writes
    Escrituras del archivo de registro pendientes. Añadido en MySQL 5.0.2.
  • Innodb_os_log_written
    El número de bytes escritos al archivo de registro. Añadido en MySQL 5.0.2.
  • Innodb_page_size
    El tamaño de página con que se compiló InnoDB (16KB por defecto). Muchos valores son contados en páginas; el tamaño de página permite convertirlos fácilmente a bytes. Añadido en MySQL 5.0.2.
  • Innodb_pages_created
    El número de páginas creadas. Añadido en MySQL 5.0.2.
  • Innodb_pages_read
    El número de páginas leidas. Añadido en MySQL 5.0.2.
  • Innodb_pages_written
    El número de páginas escritas. Añadido en MySQL 5.0.2.
  • Innodb_row_lock_current_waits
    El número de bloqueos de registro por el que se está esperando. Añadido en MySQL 5.0.3.
  • Innodb_row_lock_time
    El tiempo total gastado en adquirir bloqueos de registro, en milisegundos. Añadido en MySQL 5.0.3.
  • Innodb_row_lock_time_avg
    El tiempo medio gastado en adquirir un bloqueo de registro, en milisegundos. Añadido en MySQL 5.0.3.
  • Innodb_row_lock_time_max
    El tiempo máximo gastado en adquirir un bloqueo de registro, en milisegundos. Añadido en MySQL 5.0.3.
  • Innodb_row_lock_waits
    El número de veces que se ha tenido que esperar por un bloqueo de registro. Añadido en MySQL 5.0.3.
  • Innodb_rows_deleted
    El número de registros borrados de tablas InnoDB. Añadido en MySQL 5.0.2.
  • Innodb_rows_inserted
    El número de registros insertados en tablas InnoDB. Añadido en MySQL 5.0.2.
  • Innodb_rows_read
    El número de registros leidos desde tablas InnoDB. Añadido en MySQL 5.0.2.
  • Innodb_rows_updated
    El número de registros actualizados en tablas InnoDB. Añadido en MySQL 5.0.2.
  • Key_blocks_not_flushed
    El número de bloques de claves en la cache de claves que han cambiado pero todavía no han sido volcados a disco.
  • Key_blocks_unused
    El número de bloques sin utilizar en la cache de claves. Puede utilizar este valor para determinar qué tamaño de la cache de claves está en uso; consulte la discusión de key_buffer_size en Sección 5.3.3, “Variables de sistema del servidor”.
  • Key_blocks_used
    El número de bloques utilizados en la cache de claves. Este valor es una marca de máximo, que indica el número máximo de bloques que han sido nunca utilizados al mismo tiempo.
  • Key_read_requests
    El número de peticiones para leer un bloque de claves de la cache.
  • Key_reads
    El número de lecturas físicas de un bloque de claves desde disco. Si Key_reads es grande, entonces el valor dekey_buffer_size es, probablemente, demasiado pequeño. La tasa de fallos de la cache puede ser calculada como Key_reads/Key_read_requests.
  • Key_write_requests
    El número de peticiones de escritura de un bloque de claves a la cache.
  • Key_writes
    El número de escrituras físicas de un bloque de claves a disco.
  • Last_query_cost
    El coste total de la última consulta compilada tal como ha sido computada por el optimizador de consultas. Es útil para comparar el coste de diferentes planes de ejecución para la misma consulta. El valor por defecto de 0 significa que no se ha compilado ninguna consulta todavía. Esta variable fue añadida en MySQL 5.0.1 con un valor por defecto de -1. En MySQL 5.0.7 el valor por defecto ha cambiado a 0; también en la versión 5.0.7, el ámbito de Last_query_cost ha cambiado a sesión en vez de global.
  • Max_used_connections
    El número máximo de conexiones que han sido utilizadas simultáneamente desde que el servidor ha sido iniciado.
  • Not_flushed_delayed_rows
    El número de registros esperando a ser escritos en colas de INSERT DELAY.
  • Open_files
    El número de archivos que están abiertos.
  • Open_streams
    El número de flujos de datos (strems) que están abiertos (utilizados principalmente para el registro).
  • Open_tables
    El número de tablas que están actualmente abiertas.
  • Opened_tables
    El número de tablas que han sido abiertas. Si Opened_tables es grande, probablemente el valor detable_cache es demasiado pequeño.
  • Qcache_free_blocks
    El número de bloques de memoria libres en la cache de consultas.
  • Qcache_free_memory
    El total de memoria libre en la cache de consultas.
  • Qcache_hits
    El número de éxitos de la cache.
  • Qcache_inserts
    El número de consultas añadidas a la cache.
  • Qcache_lowmem_prunes
    El número de consultas que fueron borradas de la cache de consultas debido a baja memoria.
  • Qcache_not_cached
    El número de consultas que no han entrado en la cache (por no ser "cacheables", o debido al parámetroquery_cache_type).
  • Qcache_queries_in_cache
    El número de consultas registradas en la cache.
  • Qcache_total_blocks
    El número total de bloques en la cache de consultas.
  • Questions
    El número de consultas que han sido enviadas al servidor.
  • Rpl_status
    El estado de la replicación a prueba de fallos (todavía no implementado).
  • Select_full_join
    El número de joins que no utilizan índices. Si este valor no es 0, debería comprobar cuidadosamente los índices de sus tablas.
  • Select_full_range_join
    El número de joins que han utilizado una búsqueda por rango en una tabla de referencia.
  • Select_range
    El número de joins que han usado rangos en la primera table. Normalmente no es algo crítico aunque pueda ser bastante grande.
  • Select_range_check
    El número de joins sin claves que comprueban la utilización de claves después de cada registro. Si esto no es cero, debería comprobar cuidadosamente los índices de sus tablas.
  • Select_scan
    El número de joins que han hecho un escaneo total de la primera tabla.
  • Slave_open_temp_tables
    El número de tablas temporales abiertas actualmente por el subproceso SQL esclavo.
  • Slave_running
    Este valor es ON si el servidor es un esclavo que está conectado a un servidor maestro.
  • Slave_retried_transactions
    Número total de veces desde el inicio que el subproceso SQL esclavo de replicación ha intentando alguna transacción. Para la serie de MySQL 5.0, esta variable fue añadida en la versión 5.0.4.
  • Slow_launch_threads
    El número de subprocesos que han tardado en crearse más de slow_launch_time segundos.
  • Slow_queries
    El número de consultas que han tardado más de long_query_time segundos. Consulte Sección 5.10.4, “El registro de consultas lentas (Slow Query Log)”.
  • Sort_merge_passes
    El número de pasadas que el algoritmo de ordenación ha tenido que hacer. Si este valor es grande, debería considerar incrementar el valor de la variable de sistemasort_buffer_size
  • Sort_range
    El número de ordenaciones que fueron realizadas utilizando rangos.
  • Sort_rows
    El número de registros ordenados.
  • Sort_scan
    El número de ordenaciones que fueron hechas escaneando la tabla.
  • Ssl_xxx
    Variables utilizadas para conexiones SSL.
  • Table_locks_immediate
    El número de veces que un bloque de tabla ha sido adquirido inmediatamente.
  • Table_locks_waited
    El número de veces que un bloque de tabla no se ha podido adquirir inmediatamente y se ha necesitado una espera. Si esto es alto, y tiene problemas en el rendimiento, debería primero optimizar sus consultas y después, o bien utilizar replicación, o dividir sus tablas.
  • Threads_cached
    El número de subprocesos en la cache de subprocesos.
  • Threads_connected
    El número de conexiones abiertas actualmente.
  • Threads_created
    El número de subprocesos creados para gestionar conexiones. Si Threads_created es grande, debería incrementar el valor de thread_cache_size. La tasa de éxitos de la cache puede ser calculada comoThreads_created/Connections.
  • Threads_running
    El número de subprocesos que no están durmiendo.
  • Uptime
    El número de segundos que el servidor ha estado funcionando ininterrumpidamente.

Fuente:enlace

No hay comentarios:

Publicar un comentario

Entradas populares