Description:
'wait/io/file/innodb%' instruments is missing from performance_schema.setup_instruments.
How to repeat:
Follow the instructions at http://dev.mysql.com/doc/refman/5.6/en/performance-schema-wait-tables.html to check whether 'wait/io/file/innodb%' events are enabled in performance_schema.setup_instruments
mysql> show global variables like '%version%';
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.6.29 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.6.29-log |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | Win64 |
+-------------------------+------------------------------+
7 rows in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'perf%';
+--------------------------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------------------------+-------+
| performance_schema | ON |
| performance_schema_accounts_size | 100 |
| performance_schema_digests_size | 10000 |
| performance_schema_events_stages_history_long_size | 10000 |
| performance_schema_events_stages_history_size | 10 |
| performance_schema_events_statements_history_long_size | 10000 |
| performance_schema_events_statements_history_size | 10 |
| performance_schema_events_waits_history_long_size | 10000 |
| performance_schema_events_waits_history_size | 10 |
| performance_schema_hosts_size | 100 |
| performance_schema_max_cond_classes | 80 |
| performance_schema_max_cond_instances | 3504 |
| performance_schema_max_digest_length | 1024 |
| performance_schema_max_file_classes | 50 |
| performance_schema_max_file_handles | 32768 |
| performance_schema_max_file_instances | 6770 |
| performance_schema_max_mutex_classes | 200 |
| performance_schema_max_mutex_instances | 15906 |
| performance_schema_max_rwlock_classes | 40 |
| performance_schema_max_rwlock_instances | 9102 |
| performance_schema_max_socket_classes | 10 |
| performance_schema_max_socket_instances | 322 |
| performance_schema_max_stage_classes | 150 |
| performance_schema_max_statement_classes | 168 |
| performance_schema_max_table_handles | 4000 |
| performance_schema_max_table_instances | 12500 |
| performance_schema_max_thread_classes | 50 |
| performance_schema_max_thread_instances | 402 |
| performance_schema_session_connect_attrs_size | 512 |
| performance_schema_setup_actors_size | 100 |
| performance_schema_setup_objects_size | 100 |
| performance_schema_users_size | 100 |
+--------------------------------------------------------+-------+
32 rows in set (0.00 sec)
However, the result is empty instead of three rows (wait/io/file/innodb/innodb_data_file, wait/io/file/innodb/innodb_log_file and wait/io/file/innodb/innodb_temp_file ) as the manual says.
mysql> SELECT * FROM performance_schema.setup_instruments WHERE NAME LIKE 'wait/io/file/innodb%';
Empty set (0.00 sec)
Suggested fix:
If we issue SELECT * FROM setup_instruments WHERE NAME LIKE 'wait/io/file/innodb%', the results should be
+--------------------------------------+---------+-------+
| NAME | ENABLED | TIMED |
+--------------------------------------+---------+-------+
| wait/io/file/innodb/innodb_data_file | YES | YES |
| wait/io/file/innodb/innodb_log_file | YES | YES |
| wait/io/file/innodb/innodb_temp_file | YES | YES |
+--------------------------------------+---------+-------+
and we can tracking InnoDB file IO via performance_schema.file_summary_by_instance.