22.2.2 성능 스키마 Startup 구성
성능 스키마를 사용할 수있는 것으로, MySQL 5.6.6 이후 그것은 기본적으로 활성화됩니다. 5.6.6 이전에는, 그것은 기본적으로 비활성화됩니다. 그것을 명시 적으로 활성화 또는 비활성화하려면 performance_schema
변수를 적절한 값으로 설정하여 서버를 시작합니다. 예를 들어, my.cnf
파일에 다음 줄을 사용합니다.
[mysqld] performance_schema=ON
성능 스키마의 초기화시에 서버가 내부 버퍼를 할당 할 수없는 경우 성능 스키마는 자동으로 비활성화되고 performance_schema
를 OFF
로 설정하여 서버가 계측없이 실행합니다.
MySQL 5.6.4 이후 성능 스키마는 서버 시작시 instrument 및 소비자의 구성을 허용합니다. 이것은 이전 setup_instruments
및 setup_consumers
테이블에 UPDATE
문을 사용하여 실행시에만 가능했습니다. 이 변경 사항은 서버를 시작할 때 이미 초기화 된 instrument를 런타임 구성하지 않으려면 너무 늦었 위해 수행되었습니다. 예를 들어, wait/synch/mutex/sql/LOCK_open
상호 배타 락은 서버 시작시 1 회 초기화되기 때문에 런타임에 해당하는 instrument를 해제하는 시도는 무효입니다.
서버 시작 instrument를 제어하려면이 형식 옵션을 사용합니다.
--performance-schema-instrument='instrument_name
=value
'
여기에서 instrument_name
는 wait/synch/mutex/sql/LOCK_open
등의 instrument 이름에서 value
는 다음 중 하나의 값입니다.
off
,false
또는0
: instrument를 해제합니다on
,true
또는1
: instrument를 사용하여 시간을 측정합니다counted
: instrument를 사용하여 계산 (시간 측정이 아니라)합니다
각 --performance-schema-instrument
옵션은 instrument 이름을 하나만 지정할 수 없지만 옵션의 여러 인스턴스를 지정하여 여러 instrument를 구성 할 수 있습니다. 또한 instrument 이름 패턴을 사용할 수 있으며, 패턴에 일치하는 인스트르먼트를 구성합니다. 모든 조건 동기화 instrument를 유효 카운트 대상으로 구성하려면 다음 옵션을 사용합니다.
--performance-schema-instrument='wait/synch/cond/%=COUNTED'
모든 instrument를 사용하지 않으려면 다음 옵션을 사용합니다.
--performance-schema-instrument='%=OFF'
긴 instrument 이름 문자열은 순서에 관계없이 짧은 패턴 이름보다 우선합니다. instrument를 선택하는 패턴의 지정 내용은 섹션 22.2.3.4 "필터링 작업 instrument 또는 소비자의 지정" 을 참조하십시오.
인식되지 않는 instrument 이름은 무시됩니다. 나중에 설치된 플러그인을 통해 instrument를 만들 수 있으며,이 때 이름이 인식되고 구성됩니다.
서버 시작시 소비자를 제어하려면이 형식 옵션을 사용합니다.
--performance-schema-consumer-consumer_name
=value
여기에서 consumer_name
는 events_waits_history
등의 소비자 이름에서 value
는 다음 중 하나입니다.
off
,false
또는0
: 소비자의 이벤트를 수집하지 않습니다on
,true
또는1
: 소비자의 이벤트를 수집합니다
예를 들어, events_waits_history
소비자를 활성화하려면 다음 옵션을 사용합니다.
--performance-schema-consumer-events-waits-history=ON
허용되는 소비자 이름은 setup_consumers
테이블을 조사하면 알 수 있습니다. 패턴은 허용되지 않습니다. setup_consumers
테이블의 소비자 이름에는 밑줄이 사용되지만 시작할 때 설정된 소비자는 이름에 대시와 밑줄은 동일합니다.
성능 스키마는 구성 정보를 제공하는 일부 시스템 변수가 포함됩니다.
mysql> SHOW VARIABLES LIKE 'perf%';
+--------------------------------------------------------+---------+
| Variable_name | Value |
+--------------------------------------------------------+---------+
| performance_schema | ON |
| performance_schema_accounts_size | 100 |
| performance_schema_digests_size | 200 |
| 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 | 1000 |
...
performance_schema
변수는 ON
또는 OFF
로 성능 스키마가 사용 여부를 나타냅니다. 다른 변수는 테이블 크기 (행 수)와 메모리 할당 값을 나타냅니다.
성능 스키마가 활성화되는 경우 성능 스키마 인스턴스의 수는 아마 크게 서버 메모리 풋 프린트에 영향을줍니다. 성능 스키마의 시스템 변수의 값을 튜닝하여 instrument의 부족과 과도한 메모리 소비의 균형을 잡는 인스턴스의 수를 찾을 필요가있을 수 있습니다.
성능 스키마 시스템 변수의 값을 변경하려면 그들을 서버 시작시에 설정합니다. 예를 들어, my.cnf
파일에 기록 테이블의 크기를 변경하려면 다음 줄을 켭니다.
[mysqld] performance_schema performance_schema_events_waits_history_size=20 performance_schema_events_waits_history_long_size=15000
MySQL 5.6.6 이후 성능 스키마는 매개 변수의 일부 값을 그들이 명시 적으로 설정되어 있지 않은 경우, 서버 시작시 자동으로 크기 설정합니다. 예를 들어, 이벤트 대기 테이블의 크기를 제어하는 매개 변수를 이렇게 크기 설정합니다. 어떤 매개 변수가이 정책에서 크기 설정되는지를 확인하려면 mysqld --verbose --help를 사용하여 -1의 기본값을 가지는 것을 찾거나 섹션 22.12 "성능 스키마 시스템 변수" 를 참조 하십시오.
서버 시작시 설정되어 있지 않은 (또는 -1로 설정되어있다) 자동 크기 설정되는 각 매개 변수에 대한 성능 스키마는 다음 시스템 변수의 값에 따라 그 값을 설정하는 방법을 결정합니다. 그들은 MySQL 서버를 어떻게 구성하고 있는지에 대한 "팁"으로 간주됩니다.
max_connections open_files_limit table_definition_cache table_open_cache
특정 매개 변수의 자동 크기 설정을 재정의하려면 시작할 때 그것에 -1 이외의 값을 설정합니다. 이 경우 성능 스키마는 그것에 지정된 값을 할당합니다.
실행시에, SHOW VARIABLES
는 자동 크기 설정된 매개 변수에 설정되어 있던 실제 값이 표시됩니다.
성능 스키마가 비활성화되어있는 경우 자동 크기 설정된 매개 변수는 -1로 설정된 채로, SHOW VARIABLES
는 -1이 표시됩니다.