Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Resumen performance_schema
Simon J Mudd | 20/02/2014
Qu es performance_schema?
Cmo se configura?
Est habilitado cuando MySQL arranca a travs de la
siguiente opcin en /etc/my.cnf
performance_schema = 1
setup_consumers
mysql> SELECT * FROM setup_consumers;
+--------------------------------+---------+
| NAME
| ENABLED |
+--------------------------------+---------+
| events_stages_current
| YES
|
| events_stages_history
| YES
|
| events_stages_history_long
| NO
|
| events_statements_current
| YES
|
| events_statements_history
| NO
|
| events_statements_history_long | NO
|
| events_waits_current
| YES
|
| events_waits_history
| YES
|
| events_waits_history_long
| NO
|
| global_instrumentation
| YES
|
| thread_instrumentation
| YES
|
| statements_digest
| YES
|
+--------------------------------+---------+
12 rows in set (0.00 sec)
setup_consumers
Stages
Representa las diferentes etapas durante el procesamiento de
un query
Statements
Informacin sobre diferentes comandos SQL que se est
procesando
Waits
Global_instrumentation
Informacin global
5
setup_instruments
mysql> SELECT * FROM setup_instruments;
+-----------------------------------------------+---------+-------+
| NAME
| ENABLED | TIMED |
+-----------------------------------------------+---------+-------+
| wait/synch/mutex/sql/PAGE::lock
| NO
| NO
|
| wait/synch/mutex/sql/TC_LOG_MMAP::LOCK_sync
| NO
| NO
|
| wait/synch/mutex/sql/TC_LOG_MMAP::LOCK_active | NO
| NO
|
| wait/synch/mutex/sql/TC_LOG_MMAP::LOCK_pool
| NO
| NO
|
| wait/synch/mutex/sql/LOCK_des_key_file
| NO
| NO
|
+-----------------------------------------------+---------+-------+
setup_instruments
Hay entradas para cada etapa del procesamiento de un
query y aqu se determina si se mide la informacin o
no.
Por ejemplo:
wait/synch/mutex/innodb/trx_mutex
wait/synch/mutex/innodb/os_mutex
wait/synch/rwlock/innodb/fil_space_latch
wait/io/file/sql/binlog
wait/io/file/sql/FRM
.
7
P_S tables
MySQL 5.6 tiene 52 tablas divididas entre:
hosts
Los hosts que han conectado a MySQL:
10
host_cache
Informacin sobre los hosts que han conectado a
MySQL
11
host_cache
Information on hosts connecting to MySQL
12
host_cache
Me di cuenta que el tamao del cache era demasiado
pequeo y esto provoca ms peticiones DNS para
resolver el nombre de la direccin ip
As que hay que configurar the host_cache_size en 5.6
en algunos sistemas. Antes de MySQL 5.6 el valor era
determinado al compilar MySQL.
Relacionado: http://bugs.mysql.com/71382
13
table_io_waits_summary_by_table
El tiempo que se espera al leer o escribir a una tabla
14
file_io_summary_by_instance
El tiempo que se espera para el acceso a un archivo
15
events_waits_history
Dnde est esperando MySQL para su siguiente paso?
16
events_waits_history
Quiz no sorprende:
1 Esperando para un COMMIT (escritura a los archivos
ib_logfile)
2 Esperando para un checkpointing (escritura a archivos .ibd
files)
3r- Esperando para el procesamiento de comandos SQL
17
events_stages_history
Su configuracin no est habilitada de manera
predeterminada
Se configura as:
18
events_stages_history
Dnde est esperando durante el procesamiento SQL?
19
P_S sizing
20
P_S sizing
Las tablas que contienen informacin histrica contiene
los ltimos 10 eventos, las tablas history_long contiene
los ltimos 10,000 eventos
En algunos casos puede ser necesario ajustar estos
parametros.
21
events_statements
Lo que queremos ver todos: lo que hacen los
desarrolladores y buscar los queries malos.
Su configuracin requiere:
22
events_statements
23
ps_helper
Mark Leith desarroll un schema que llam ps_helper.
Contiene una serie de vistas sobre P_S
24
ps_helper
Ahorra tiempo porque simplifica los SELECTs que tienes
que realizar
No tiene coste: son VIEWs
Hay 2 tipos de VIEW: las bonitas con los datos
formateados y otras con la informacin sin ordenar, til
para manipulacin posterior si es necsario.
ps_helper estar incluido en MySQL 5.7 (con el nombre
de schema sys)
25
Resumen
Ha sido un resumen muy breve
P_S contiene mucha informacin muy til
MySQL 5.7 contiene ms tablas
Sobre la utilizacin de memoria
Sobre replicacin y la actividades de los distintos threads
26
Referencias
Algunas referencias:
performance_schema
http://dev.mysql.com/doc/refman/5.6/en/performanceschema.html
dba_helper / mysql-sys
https://github.com/MarkLeith/dbahelper/
https://github.com/MarkLeith/mysql-sys/
27