[MySQL][InnoDB] 성능 스키마와 InnoDB 통합

■ MySQL 성능 스키마와 InnoDB 통합

MySQL 성능 스키마 기능을 사용하여 특정 내부 InnoDB 작업을 프로파일링 있습니다. 유형의 튜닝은 주로 성능 병목 현상을 극복하기 위해 최적화 전략을 평가하는 전문 사용자를위한 것입니다. 또한 DBA 용량 계획에 기능을 사용하여 일반적인 워크로드에 특정 CPU, RAM 디스크 스토리지 조합의 성능 병목 현상이 발생하는지 확인할 있습니다. 결과로 시스템 일부의 처리량이나 용량을 늘려 성능을 향상시킬 있는지 판단할 있는 근거가 됩니다.

 

기능을 사용하여 InnoDB 성능을 검사하려면 :

+ 일반적으로 성능 스키마 기능을 사용하는 방법에 익숙해야 합니다. 예를 들어, 계측기와 소비자를 활성화하는 방법과 performance_schema 테이블을 쿼리하여 데이터를 검색하는 방법을 알아야합니다.

 

+ InnoDB 사용 가능한 Performance Schema 기기에 익숙해야 합니다. InnoDB 관련 계측기를 보려면 'innodb' 포함된 계측기 이름에 대해 setup_instruments 테이블을 쿼리 ​​있습니다.

mysql> SELECT *
       FROM performance_schema.setup_instruments
       WHERE NAME LIKE '%innodb%';
+-------------------------------------------------------+---------+-------+
| NAME                                                  | ENABLED | TIMED |
+-------------------------------------------------------+---------+-------+
| wait/synch/mutex/innodb/commit_cond_mutex             | NO      | NO    |
| wait/synch/mutex/innodb/innobase_share_mutex          | NO      | NO    |
| wait/synch/mutex/innodb/autoinc_mutex                 | NO      | NO    |
| wait/synch/mutex/innodb/buf_pool_mutex                | NO      | NO    |
| wait/synch/mutex/innodb/buf_pool_zip_mutex            | NO      | NO    |
| wait/synch/mutex/innodb/cache_last_read_mutex         | NO      | NO    |
| wait/synch/mutex/innodb/dict_foreign_err_mutex        | NO      | NO    |
| wait/synch/mutex/innodb/dict_sys_mutex                | NO      | NO    |
| wait/synch/mutex/innodb/recalc_pool_mutex             | NO      | NO    |
| wait/synch/mutex/innodb/file_format_max_mutex         | NO      | NO    |
...
| 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   |
| stage/innodb/alter table (end)                        | YES     | YES   |
| stage/innodb/alter table (flush)                      | YES     | YES   |
| stage/innodb/alter table (insert)                     | YES     | YES   |
| stage/innodb/alter table (log apply index)            | YES     | YES   |
| stage/innodb/alter table (log apply table)            | YES     | YES   |
| stage/innodb/alter table (merge sort)                 | YES     | YES   |
| stage/innodb/alter table (read PK and internal sort)  | YES     | YES   |
| stage/innodb/buffer pool load                         | YES     | YES   |
| memory/innodb/buf_buf_pool                            | NO      | NO    |
| memory/innodb/dict_stats_bg_recalc_pool_t             | NO      | NO    |
| memory/innodb/dict_stats_index_map_t                  | NO      | NO    |
| memory/innodb/dict_stats_n_diff_on_level              | NO      | NO    |
| memory/innodb/other                                   | NO      | NO    |
| memory/innodb/row_log_buf                             | NO      | NO    |
| memory/innodb/row_merge_sort                          | NO      | NO    
| memory/innodb/std                                     | NO      | NO    |
| memory/innodb/sync_debug_latches                      | NO      | NO    |
| memory/innodb/trx_sys_t::rw_trx_ids                   | NO      | NO    |
...
+-------------------------------------------------------+---------+-------+
155 rows in set (0.00 sec)

 

인스트루먼트 InnoDB 오브젝트에 대한 추가 정보는 인스트루먼트된 오브젝트에 대한 추가 정보를 제공하는 성능 스키마 인스턴스 테이블을 조회할 있습니다. InnoDB 관련된 인스턴스 테이블은 다음과 같습니다.

- mutex_instances 테이블

- rwlock_instances 테이블

- cond_instances 테이블

- file_instances 테이블

 

InnoDB 버퍼 풀과 관련된 뮤텍스 RW 잠금은이 범위에 포함되지 않습니다. SHOW ENGINE INNODB MUTEX 명령의 출력에도 동일하게 적용됩니다.

 

예를 들어, 파일 I/O 계측을 실행할때 성능 스키마에 표시되는 계측된 InnoDB 파일 객체에 대한 정보를 보려면 다음 쿼리를 발행 있습니다.

mysql> SELECT *
       FROM performance_schema.file_instances
       WHERE EVENT_NAME LIKE '%innodb%'\G
*************************** 1. row ***************************
 FILE_NAME: /path/to/mysql-5.7/data/ibdata1
EVENT_NAME: wait/io/file/innodb/innodb_data_file
OPEN_COUNT: 3
*************************** 2. row ***************************
 FILE_NAME: /path/to/mysql-5.7/data/ib_logfile0
EVENT_NAME: wait/io/file/innodb/innodb_log_file
OPEN_COUNT: 2
*************************** 3. row ***************************
 FILE_NAME: /path/to/mysql-5.7/data/ib_logfile1
EVENT_NAME: wait/io/file/innodb/innodb_log_file
OPEN_COUNT: 2
*************************** 4. row ***************************
 FILE_NAME: /path/to/mysql-5.7/data/mysql/engine_cost.ibd
EVENT_NAME: wait/io/file/innodb/innodb_data_file
OPEN_COUNT: 3
...

 

+ InnoDB 이벤트 데이터를 저장하는 performance_schema 테이블에 익숙해야 합니다. InnoDB 관련 이벤트와 관련된 테이블은 다음과 같습니다.

- 대기 이벤트를 저장하는 대기 이벤트 테이블.

- 시간이 지남에 따라 종료된 이벤트에 대한 집계 정보를 제공하는 요약 테이블이 있습니다. 요약 테이블에는 I/O조작에 대한 정보를 집계하는 파일 I/O 요약 테이블이 포함됩니다.

- InnoDB ALTER TABLE 버퍼 풀로드 작업에 대한 이벤트 데이터를 저장하는 스테이지 이벤트 테이블이 있습니다. 아래에서 설명합니다.

 

InnoDB 관련 개체에만 관심이있는 경우 이러한 테이블을 쿼리 WHERE EVENT_NAME LIKE '% innodb %'또는 WHERE NAME LIKE '% innodb %'(필요한 경우) 조건절을 사용합니다.

 

 

 

■ performance schema 사용하여 InnoDB 테이블에 대한 ALTER TABLE 진행 상황 모니터링

performance schema 사용하여 InnoDB 테이블에 대한 ALTER TABLE 진행 상황을 모니터링 있습니다.

 

ALTER TABLE 여러 단계를 나타내는 7개의 스테이지 이벤트가 있습니다. 단계 이벤트는 다른 단계를 진행하면서 전체 ALTER TABLE 조작에 대해 WORK_COMPLETED WORK_ESTIMATED를보고합니다. WORK_ESTIMATED ALTER TABLE 수행하는 모든 작업을 고려한 공식을 사용하여 계산되며 ALTER TABLE 처리 중에 수정 있습니다. WORK_COMPLETED WORK_ESTIMATED 값은 ALTER TABLE 의해 수행된 모든 작업의 ​​추상 표현입니다.

 

발생 순서에 따라 ALTER TABLE 스테이지 이벤트에는 다음이 포함됩니다.

+ stage/innodb/alter테이블(PK 내부 정렬 읽기) : 단계는 ALTER TABLE 기본 읽기 단계에 있을때 활성화됩니다. WORK_COMPLETED=0으로 시작하고 WORK_ESTIMATED 기본 키의 예상 페이지 수로 설정됩니다. 스테이지가 완료되면 WORK_ESTIMATED 기본키의 실제 페이지 수로 업데이트됩니다.

+ stage/innodb/alter table(병합 정렬) : 단계는 ALTER TABLE 작업으로 추가된 인덱스에 대해 반복됩니다.

+ stage/innodb/alter table(삽입) : 단계는 ALTER TABLE 조작으로 추가된 인덱스에 대해 반복됩니다.

+ stage/innodb/alter테이블(로그 적용 색인) : 단계에는 ALTER TABLE 실행되는 동안 생성된 DML로그의 응용 프로그램이 포함됩니다.

+ stage/innodb/alter table(플러시) : 단계가 시작되기 전에 WORK_ESTIMATED 플러시 목록의 길이에 따라보다 정확한 추정치로 업데이트 됩니다.

+ stage/innodb/alter 테이블(로그 적용 테이블) : 단계에는 ALTER TABLE 실행되는 동안 생성된 동시 DML로그의 응용 프로그램이 포함됩니다. 단계의 지속 시간은 테이블 변경 범위에 따라 다릅니다. 단계는 테이블에서 동시 DML 실행되지 않은 경우 즉각적입니다.

+ stage/innodb/alter table(end) : ALTER TABLE 실행되는 동안 테이블에서 실행된 DML 적용과 같이 플러시 단계 후에 나타난 나머지 작업이 포함됩니다.

 

▶︎ performance schema 사용한 ALTER TABLE 모니터링

다음 예는 stage/innodb/alter table%stage 이벤트 계측기 관련 소비자 테이블을 사용하여 ALTER TABLE 진행 상황을 모니터링하는 방법을 보여줍니다.

1. stage/innodb/alter%인스트루먼트를 활성화합니다 :

mysql> UPDATE performance_schema.setup_instruments

       SET ENABLED = 'YES'

       WHERE NAME LIKE 'stage/innodb/alter%';

Query OK, 7 rows affected (0.00 sec)

Rows matched: 7  Changed: 7  Warnings: 0

 

2. events_stages_current, events_stages_history events_stages_history_long 포함하는 스테이지 이벤트 이용자 테이블을 사용합니다.

mysql> UPDATE performance_schema.setup_consumers

       SET ENABLED = 'YES'

       WHERE NAME LIKE '%stages%';

Query OK, 3 rows affected (0.00 sec)

Rows matched: 3  Changed: 3  Warnings: 0

 

3. ALTER TABLE 작업을 실행합니다. 예에서는 middle_name 열이 직원 샘플 데이터베이스의 직원 테이블에 추가됩니다.

mysql> ALTER TABLE employees.employees ADD COLUMN middle_name varchar(14) AFTER first_name;

Query OK, 0 rows affected (9.27 sec)

Records: 0  Duplicates: 0  Warnings: 0

 

4. performance_schema events_stages_current 테이블을 쿼리하여 ALTER TABLE 작업의 진행 상태를 확인합니다. 표시되는 단계 이벤트는 현재 진행중인 ALTER TABLE 단계에 따라 다릅니다. WORK_COMPLETED 열은 완료된 작업을 보여줍니다. WORK_ESTIMATED 열은 남은 작업의 추정치를 제공합니다.

mysql> SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED
       FROM performance_schema.events_stages_current;
+------------------------------------------------------+----------------+----------------+
| EVENT_NAME                                           | WORK_COMPLETED | WORK_ESTIMATED |
+------------------------------------------------------+----------------+----------------+
| stage/innodb/alter table (read PK and internal sort) |            280 |           1245 |
+------------------------------------------------------+----------------+----------------+
1 row in set (0.01 sec)

 

ALTER TABLE 조작이 완료된 경우 events_stages_current 테이블은 세트를 리턴합니다. 경우 events_stages_history 테이블을 확인하여 완료된 작업에 대한 이벤트 데이터를 있습니다. 예를 들면 다음과 같습니다.

mysql> SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED
       FROM performance_schema.events_stages_history;
+------------------------------------------------------+----------------+----------------+
| EVENT_NAME                                           | WORK_COMPLETED | WORK_ESTIMATED |
+------------------------------------------------------+----------------+----------------+
| stage/innodb/alter table (read PK and internal sort) |            886 |           1213 |
| stage/innodb/alter table (flush)                     |           1213 |           1213 |
| stage/innodb/alter table (log apply table)           |           1597 |           1597 |
| stage/innodb/alter table (end)                       |           1597 |           1597 |
| stage/innodb/alter table (log apply table)           |           1981 |           1981 |
+------------------------------------------------------+----------------+----------------+
5 rows in set (0.00 sec)

 

위에 표시된대로 WORK_ESTIMATED 값은 ALTER TABLE 처리 중에 수정되었습니다. 초기 단계 완료 예상 작업은 1213입니다. ALTER TABLE 처리가 완료되면 WORK_ESTIMATED 실제 (1981)으로 설정되었습니다.

 

■ Performance Schema 사용하여 InnoDB Mutex 대기 모니터링

뮤텍스는 주어진 시간에 하나의 스레드만 공통 리소스에 액세스 있도록 코드에서 사용되는 동기화 메커니즘입니다. 서버에서 실행중인 이상의 스레드가 동일한 자원에 액세스해야하는 경우 스레드는 서로 경쟁합니다. 뮤텍스에서 잠금을 얻는 번째 스레드는 다른 스레드가 잠금이 해제 때까지 대기하게합니다.

 

계측 InnoDB 뮤텍스의 경우 성능 스키마를 사용하여 뮤텍스 대기를 모니터링 있습니다. Performance Schema테이블에서 수집된 대기 이벤트 데이터는 예를 들어 대기 시간이 가장 많거나 대기 시간이 가장 뮤텍스를 식별하는 도움이됩니다.

 

다음 예제는 InnoDB mutex 대기 계측기를 활성화하는 방법, 관련 소비자를 활성화하는 방법 대기 이벤트 데이터를 쿼리하는 방법을 보여줍니다.

1. 사용 가능한 InnoDB mutex 대기 계측기를 보려면 아래와 같이 Performance Schema setup_instruments 테이블을 쿼리하십시오. 모든 InnoDB mutex 대기 계측기는 기본적으로 비활성화되어 있습니다.

mysql> SELECT *
       FROM performance_schema.setup_instruments
       WHERE NAME LIKE '%wait/synch/mutex/innodb%';
+-------------------------------------------------------+---------+-------+
| NAME                                                  | ENABLED | TIMED |
+-------------------------------------------------------+---------+-------+
| wait/synch/mutex/innodb/commit_cond_mutex             | NO      | NO    |
| wait/synch/mutex/innodb/innobase_share_mutex          | NO      | NO    |
| wait/synch/mutex/innodb/autoinc_mutex                 | NO      | NO    |
| wait/synch/mutex/innodb/buf_pool_mutex                | NO      | NO    |
| wait/synch/mutex/innodb/buf_pool_zip_mutex            | NO      | NO    |
| wait/synch/mutex/innodb/cache_last_read_mutex         | NO      | NO    |
| wait/synch/mutex/innodb/dict_foreign_err_mutex        | NO      | NO    |
| wait/synch/mutex/innodb/dict_sys_mutex                | NO      | NO    |
| wait/synch/mutex/innodb/recalc_pool_mutex             | NO      | NO    |
| wait/synch/mutex/innodb/file_format_max_mutex         | NO      | NO    |
| wait/synch/mutex/innodb/fil_system_mutex              | NO      | NO    |
| wait/synch/mutex/innodb/flush_list_mutex              | NO      | NO    |
| wait/synch/mutex/innodb/fts_bg_threads_mutex          | NO      | NO    |
| wait/synch/mutex/innodb/fts_delete_mutex              | NO      | NO    |
| wait/synch/mutex/innodb/fts_optimize_mutex            | NO      | NO    |
| wait/synch/mutex/innodb/fts_doc_id_mutex              | NO      | NO    |
| wait/synch/mutex/innodb/log_flush_order_mutex         | NO      | NO    |
| wait/synch/mutex/innodb/hash_table_mutex              | NO      | NO    |
| wait/synch/mutex/innodb/ibuf_bitmap_mutex             | NO      | NO    |
| wait/synch/mutex/innodb/ibuf_mutex                    | NO      | NO    |
| wait/synch/mutex/innodb/ibuf_pessimistic_insert_mutex | NO      | NO    |
| wait/synch/mutex/innodb/log_sys_mutex                 | NO      | NO    |
| wait/synch/mutex/innodb/page_zip_stat_per_index_mutex | NO      | NO    |
| wait/synch/mutex/innodb/purge_sys_pq_mutex            | NO      | NO    |
| wait/synch/mutex/innodb/recv_sys_mutex                | NO      | NO    |
| wait/synch/mutex/innodb/recv_writer_mutex             | NO      | NO    |
| wait/synch/mutex/innodb/redo_rseg_mutex               | NO      | NO    |
| wait/synch/mutex/innodb/noredo_rseg_mutex             | NO      | NO    |
| wait/synch/mutex/innodb/rw_lock_list_mutex            | NO      | NO    |
| wait/synch/mutex/innodb/rw_lock_mutex                 | NO      | NO    |
| wait/synch/mutex/innodb/srv_dict_tmpfile_mutex        | NO      | NO    |
| wait/synch/mutex/innodb/srv_innodb_monitor_mutex      | NO      | NO    |
| wait/synch/mutex/innodb/srv_misc_tmpfile_mutex        | NO      | NO    |
| wait/synch/mutex/innodb/srv_monitor_file_mutex        | NO      | NO    |
| wait/synch/mutex/innodb/buf_dblwr_mutex               | NO      | NO    |
| wait/synch/mutex/innodb/trx_undo_mutex                | NO      | NO    |
| wait/synch/mutex/innodb/trx_pool_mutex                | NO      | NO    |
| wait/synch/mutex/innodb/trx_pool_manager_mutex        | NO      | NO    |
| wait/synch/mutex/innodb/srv_sys_mutex                 | NO      | NO    |
| wait/synch/mutex/innodb/lock_mutex                    | NO      | NO    |
| wait/synch/mutex/innodb/lock_wait_mutex               | NO      | NO    |
| wait/synch/mutex/innodb/trx_mutex                     | NO      | NO    |
| wait/synch/mutex/innodb/srv_threads_mutex             | NO      | NO    |
| wait/synch/mutex/innodb/rtr_active_mutex              | NO      | NO    |
| wait/synch/mutex/innodb/rtr_match_mutex               | NO      | NO    |
| wait/synch/mutex/innodb/rtr_path_mutex                | NO      | NO    |
| wait/synch/mutex/innodb/rtr_ssn_mutex                 | NO      | NO    |
| wait/synch/mutex/innodb/trx_sys_mutex                 | NO      | NO    |
| wait/synch/mutex/innodb/zip_pad_mutex                 | NO      | NO    |
+-------------------------------------------------------+---------+-------+
49 rows in set (0.02 sec)

 

2. 일부 InnoDB 뮤텍스 인스턴스는 서버 시작시 생성되며 서버 시작시 연결된 인스트루먼트가 활성화된 경우에만 계측됩니다. 모든 InnoDB 뮤텍스 인스턴스가 계측되고 활성화되도록하려면 MySQL 구성 파일에 다음 성능 스키마 인스트루먼트 규칙을 추가합니다.

performance-schema-instrument = '대기 / 동기화 / mutex / innodb / % = ON'

 

모든 InnoDB 뮤텍스에 대한 대기 이벤트 데이터가 필요하지 않은 경우 성능 구성표 규칙을 MySQL구성 파일에 추가하여 특정 계측기를 비활성화 있습니다. 예를 들어 전체 텍스트 검색과 관련된 InnoDB mutex대기 이벤트 계측기를 비활성화하려면 다음 규칙을 추가하십시오.

performance-schema-instrument = 'wait / synch / mutex / innodb / fts % = OFF'

 

wait/synch/mutex/innodb/fts % 같이 접두어가 규칙은 wait/sync/mutex/innodb/% 같이 접두사가 짧은 규칙보다 우선합니다.

 

구성 파일에 performance-schema-instrument 규칙을 추가한 서버를 다시 시작하십시오. 전체 텍스트 검색과 관련된 것을 제외한 모든 InnoDB 뮤텍스가 활성화됩니다. 확인하려면 setup_instruments 테이블을 조회합니다. 활성화된 계측기에서 ENABLED TIMED 열을 YES 설정해야합니다.

mysql> SELECT *
       FROM performance_schema.setup_instruments
       WHERE NAME LIKE '%wait/synch/mutex/innodb%';
+-------------------------------------------------------+---------+-------+
| NAME                                                  | ENABLED | TIMED |
+-------------------------------------------------------+---------+-------+
| wait/synch/mutex/innodb/commit_cond_mutex             | YES     | YES   |
| wait/synch/mutex/innodb/innobase_share_mutex          | YES     | YES   |
| wait/synch/mutex/innodb/autoinc_mutex                 | YES     | YES   |
...
| wait/synch/mutex/innodb/zip_pad_mutex                 | YES     | YES   |
+-------------------------------------------------------+---------+-------+
49 rows in set (0.00 sec)

 

 

 

3. setup_consumers 테이블을 업데이트하여 대기 이벤트 이용자를 사용합니다. 대기 이벤트 소비자는 기본적으로 비활성화되어 있습니다.

mysql> UPDATE performance_schema.setup_consumers
       SET enabled = 'YES'
       WHERE name like 'events_waits%';
Query OK, 3 rows affected (0.00 sec
Rows matched: 3  Changed: 3  Warnings: 0

 

setup_consumers 테이블을 조회하여 대기 이벤트 이용자가 사용 가능한지 확인할 있습니다. events_waits_current, events_waits_history events_waits_history_long 소비자를 활성화해야 합니다.

mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME                             | ENABLED |
+----------------------------------+---------+
| events_stages_current            | NO      |
| events_stages_history            | NO      |
| events_stages_history_long       | NO      |
| events_statements_current        | YES     |
| events_statements_history        | YES     |
| events_statements_history_long   | NO      |
| events_transactions_current      | YES     |
| events_transactions_history      | YES     |
| events_transactions_history_long | NO      |
| events_waits_current             | YES     |
| events_waits_history             | YES     |
| events_waits_history_long        | YES     |
| global_instrumentation           | YES     |
| thread_instrumentation           | YES     |
| statements_digest                | YES     |
+----------------------------------+---------+
15 rows in set (0.00 sec)

 

4. 계측기와 소비자(consumer) 활성화되면 모니터링하려는 작업을 실행합니다. 예제에서 mysqlslap로드 에뮬레이션 클라이언트는 워크로드를 시뮬레이션하는데 사용됩니다.

shell> ./mysqlslap --auto-generate-sql --concurrency=100 --iterations=10
       --number-of-queries=1000 --number-char-cols=6 --number-int-cols=6;

 

5. 대기 이벤트 데이터를 조회합니다. 예제에서, events_waits_summary_global_by_event_name 테이블에서 대기 이벤트 데이터를 조회하여 events_waits_current, events_waits_history events_waits_history_long 테이블에있는 데이터를 집계합니다. 데이터는 이벤트를 생성한 계측기의 이름 이벤트 이름 (EVENT_NAME)으로 요약됩니다. 요약된 데이터는 다음과 같습니다.

 

+ COUNT_STAR

요약 대기 이벤트 수입니다.

 

+ SUM_TIMER_WAIT

요약 시간별 대기 이벤트의 대기 시간입니다.

 

+ MIN_TIMER_WAIT

요약 시간별 대기 이벤트의 최소 대기 시간입니다.

 

+ AVG_TIMER_WAIT

요약 시간별 대기 이벤트의 평균 대기 시간입니다.

 

+ MAX_TIMER_WAIT

요약 시간별 대기 이벤트의 최대 대기 시간입니다.

 

다음 쿼리는 계측기 이름(EVENT_NAME), 대기 이벤트 (COUNT_STAR) 해당 계측기 이벤트의 대기 시간(SUM_TIMER_WAIT) 반환합니다. 대기 시간은 기본적으로 피코초(picoseconds)(1조분의 1) 단위이므로 대기 시간은 1,000,000,000으로 나누어 대기시간(밀리 ) 표시합니다. 요약된 대기이벤트 (COUNT_STAR) 따라 데이터가 내림차순으로 표시됩니다.

mysql> SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT/1000000000 SUM_TIMER_WAIT_MS
       FROM performance_schema.events_waits_summary_global_by_event_name
       WHERE SUM_TIMER_WAIT > 0 AND EVENT_NAME LIKE 'wait/synch/mutex/innodb/%'
       ORDER BY COUNT_STAR DESC;
+--------------------------------------------------+------------+-------------------+
| EVENT_NAME                                       | COUNT_STAR | SUM_TIMER_WAIT_MS |
+--------------------------------------------------+------------+-------------------+
| wait/synch/mutex/innodb/os_mutex                 |      78831 |           10.3283 |
| wait/synch/mutex/innodb/log_sys_mutex            |      41488 |         6510.3233 |
| wait/synch/mutex/innodb/trx_sys_mutex            |      29770 |         1107.9687 |
| wait/synch/mutex/innodb/lock_mutex               |      24212 |          104.0724 |
| wait/synch/mutex/innodb/trx_mutex                |      22756 |            1.9421 |
| wait/synch/mutex/innodb/rseg_mutex               |      20333 |            3.6220 |
| wait/synch/mutex/innodb/dict_sys_mutex           |      13422 |            2.2284 |
| wait/synch/mutex/innodb/mutex_list_mutex         |      12694 |          344.1164 |
| wait/synch/mutex/innodb/fil_system_mutex         |       9208 |            0.9542 |
| wait/synch/mutex/innodb/rw_lock_list_mutex       |       8304 |            0.1794 |
| wait/synch/mutex/innodb/trx_undo_mutex           |       6190 |            0.6801 |
| wait/synch/mutex/innodb/buf_pool_mutex           |       2869 |           29.4623 |
| wait/synch/mutex/innodb/innobase_share_mutex     |       2005 |            0.1349 |
| wait/synch/mutex/innodb/flush_list_mutex         |       1274 |            0.1300 |
| wait/synch/mutex/innodb/file_format_max_mutex    |       1016 |            0.0469 |
| wait/synch/mutex/innodb/purge_sys_bh_mutex       |       1004 |            0.0326 |
| wait/synch/mutex/innodb/buf_dblwr_mutex          |        640 |            0.0437 |
| wait/synch/mutex/innodb/log_flush_order_mutex    |        437 |            0.0510 |
| wait/synch/mutex/innodb/recv_sys_mutex           |        394 |            0.0202 |
| wait/synch/mutex/innodb/srv_sys_mutex            |        169 |            0.5259 |
| wait/synch/mutex/innodb/lock_wait_mutex          |        154 |            0.1172 |
| wait/synch/mutex/innodb/ibuf_mutex               |          9 |            0.0027 |
| wait/synch/mutex/innodb/srv_innodb_monitor_mutex |          2 |            0.0009 |
| wait/synch/mutex/innodb/ut_list_mutex            |          1 |            0.0001 |
| wait/synch/mutex/innodb/recv_writer_mutex        |          1 |            0.0005 |
+--------------------------------------------------+------------+-------------------+
25 rows in set (0.01 sec)

 

선행 결과 세트에는 시작 프로세스 중에 생성 대기 이벤트 데이터가 포함됩니다. 데이터를 제외하기 위해 시작 직후 워크로드를 실행하기 전에 events_waits_summary_global_by_event_name 테이블을자를 있습니다. 그러나 자르기 조작 자체는 무시할만한 양의 대기 이벤트 데이터를 생성 있습니다.

mysql> TRUNCATE performance_schema.events_waits_summary_global_by_event_name;

Designed by JB FACTORY