Loading...
MySQL 9.5 Reference Manual 9.5의 29.4.7 Pre-Filtering by Consumer의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
setup_consumers 테이블은 사용 가능한 consumer 타입과 어떤 것들이 활성화되어 있는지를 나열합니다:
1mysql> SELECT * FROM performance_schema.setup_consumers; 2+----------------------------------+---------+ 3| NAME | ENABLED | 4+----------------------------------+---------+ 5| events_stages_current | NO | 6| events_stages_history | NO | 7| events_stages_history_long | NO | 8| events_statements_cpu | NO | 9| events_statements_current | YES | 10| events_statements_history | YES | 11| events_statements_history_long | NO | 12| events_transactions_current | YES | 13| events_transactions_history | YES | 14| events_transactions_history_long | NO | 15| events_waits_current | NO | 16| events_waits_history | NO | 17| events_waits_history_long | NO | 18| global_instrumentation | YES | 19| thread_instrumentation | YES | 20| statements_digest | YES | 21+----------------------------------+---------+
consumer 단계에서 사전 필터링에 영향을 주고 이벤트가 전송되는 목적지를 결정하려면
setup_consumers 테이블을 수정하십시오. consumer를 활성화하거나 비활성화하려면 해당 consumer의 ENABLED 값을
YES 또는 NO로 설정합니다.
setup_consumers 테이블에 대한 수정은
모니터링에 즉시 영향을 줍니다.
consumer를 비활성화하면, 서버는 해당 consumer에 대한 목적지를 유지하는 데 시간을 들이지 않습니다. 예를 들어, 과거 이벤트 정보에 관심이 없다면, history consumer들을 비활성화하십시오:
1UPDATE performance_schema.setup_consumers 2SET ENABLED = 'NO' 3WHERE NAME LIKE '%history%';
setup_consumers 테이블의 consumer 설정은 상위 레벨에서 하위 레벨로 이어지는 계층 구조를 형성합니다. 다음 원칙들이 적용됩니다:
Performance Schema가 consumer를 확인하고 그 consumer가 활성화되어 있지 않으면, 해당 consumer와 연관된 목적지는 어떤 이벤트도 받지 않습니다.
consumer는 자신이 의존하는 (있다면) 모든 consumer가 활성화된 경우에만 확인됩니다.
consumer가 확인되지 않거나, 확인되었지만 비활성화된 경우, 그 consumer에 의존하는 다른 consumer는 확인되지 않습니다.
의존하는 consumer는 자신만의 의존 consumer를 가질 수 있습니다.
이벤트가 어떤 목적지에도 전송되지 않는다면, Performance Schema는 그 이벤트를 생성하지 않습니다.
다음 목록은 사용 가능한 consumer 값들을 설명합니다. 여러 대표적인 consumer 구성과 그것이 계측에 미치는 영향에 대한 논의는 Section 29.4.8, “Example Consumer Configurations”을 참조하십시오.
global_instrumentation은 가장 높은
레벨의 consumer입니다.
global_instrumentation이
NO이면, 글로벌 계측을 비활성화합니다.
다른 모든 설정은 더 낮은 레벨이며 확인되지 않습니다; 그것들이 무엇으로 설정되어 있는지는 중요하지 않습니다. 글로벌 또는 스레드 단위 정보는 유지되지 않으며 개별 이벤트는 현재 이벤트 또는 이벤트 history 테이블에 수집되지 않습니다.
global_instrumentation이
YES이면, Performance Schema는
글로벌 상태에 대한 정보를 유지하고
thread_instrumentation consumer도 확인합니다.
thread_instrumentation은
global_instrumentation이
YES인 경우에만 확인됩니다. 그렇지 않고
thread_instrumentation이
NO이면, 스레드별
계측을 비활성화하며 모든 하위 레벨 설정은 무시됩니다.
스레드 단위로 정보는 유지되지 않고 개별 이벤트는 현재 이벤트 또는
이벤트 history 테이블에 수집되지 않습니다.
thread_instrumentation이
YES이면, Performance Schema는
스레드별 정보를 유지하고
events_xxx_current
consumer도 확인합니다.
이들 consumer는
global_instrumentation과
thread_instrumentation이 모두
YES여야 하며 그렇지 않으면 확인되지 않습니다. 확인되는 경우, 다음과 같이 동작합니다:
events_waits_current가
NO이면,
events_waits_current 테이블에서 개별 wait 이벤트 수집이 비활성화됩니다.
YES이면 wait 이벤트 수집이 활성화되고 Performance Schema는
events_waits_history 및
events_waits_history_long consumer를 확인합니다.
events_waits_history는
event_waits_current가
NO이면 확인되지 않습니다. 그렇지 않으면,
events_waits_history 값이
NO 또는 YES인지에 따라
events_waits_history 테이블에서 wait 이벤트 수집이 비활성화되거나 활성화됩니다.
events_waits_history_long은
event_waits_current가
NO이면 확인되지 않습니다. 그렇지 않으면,
events_waits_history_long 값이
NO 또는 YES인지에 따라
events_waits_history_long
테이블에서 wait 이벤트 수집이 비활성화되거나 활성화됩니다.
이들 consumer는
global_instrumentation과
thread_instrumentation이 모두
YES여야 하며 그렇지 않으면 확인되지 않습니다. 확인되는 경우, 다음과 같이 동작합니다:
events_stages_current가
NO이면,
events_stages_current 테이블에서 개별 stage 이벤트 수집이 비활성화됩니다.
YES이면 stage 이벤트 수집이 활성화되고 Performance Schema는
events_stages_history 및
events_stages_history_long consumer를 확인합니다.
events_stages_history는
event_stages_current가
NO이면 확인되지 않습니다. 그렇지 않으면,
events_stages_history 값이
NO 또는 YES인지에 따라
events_stages_history 테이블에서 stage 이벤트 수집이 비활성화되거나 활성화됩니다.
events_stages_history_long은
event_stages_current가
NO이면 확인되지 않습니다. 그렇지 않으면,
events_stages_history_long 값이
NO 또는 YES인지에 따라
events_stages_history_long
테이블에서 stage 이벤트 수집이 비활성화되거나 활성화됩니다.
이들 consumer는
global_instrumentation과
thread_instrumentation이 모두
YES여야 하며 그렇지 않으면 확인되지 않습니다. 확인되는 경우, 다음과 같이 동작합니다:
events_statements_cpu가
NO이면
CPU_TIME 측정이 비활성화됩니다.
YES이고 계측이 활성화되어 있고 시간 측정 상태라면,
CPU_TIME이 측정됩니다.
events_statements_current가
NO이면,
events_statements_current
테이블에서 개별 statement 이벤트 수집이 비활성화됩니다.
YES이면 statement 이벤트 수집이 활성화되고 Performance Schema는
events_statements_history 및
events_statements_history_long
consumer를 확인합니다.
events_statements_history는
events_statements_current가
NO이면 확인되지 않습니다. 그렇지 않으면,
events_statements_history 값이
NO 또는 YES인지에 따라
events_statements_history
테이블에서 statement 이벤트 수집이 비활성화되거나 활성화됩니다.
events_statements_history_long은
events_statements_current가
NO이면 확인되지 않습니다. 그렇지 않으면,
events_statements_history_long 값이
NO 또는 YES인지에 따라
events_statements_history_long
테이블에서 statement 이벤트 수집이 비활성화되거나 활성화됩니다.
이들 consumer는
global_instrumentation과
thread_instrumentation이 모두
YES여야 하며 그렇지 않으면 확인되지 않습니다. 확인되는 경우, 다음과 같이 동작합니다:
events_transactions_current가
NO이면,
events_transactions_current
테이블에서 개별 transaction 이벤트 수집이 비활성화됩니다.
YES이면 transaction 이벤트 수집이 활성화되고 Performance Schema는
events_transactions_history 및
events_transactions_history_long
consumer를 확인합니다.
events_transactions_history는
events_transactions_current가
NO이면 확인되지 않습니다. 그렇지 않으면,
events_transactions_history 값이
NO 또는 YES인지에 따라
events_transactions_history
테이블에서 transaction 이벤트 수집이 비활성화되거나 활성화됩니다.
events_transactions_history_long은
events_transactions_current가
NO이면 확인되지 않습니다. 그렇지 않으면,
events_transactions_history_long 값이
NO 또는 YES인지에 따라
events_transactions_history_long
테이블에서 transaction 이벤트 수집이 비활성화되거나 활성화됩니다.
statements_digest consumer는
global_instrumentation이
YES여야 하며 그렇지 않으면 확인되지 않습니다. statement 이벤트 consumer에 대한 의존성은 없으므로,
events_statements_current에서 통계를 수집하지 않고도 digest별 통계를 얻을 수 있습니다. 이는 오버헤드 측면에서 유리합니다. 반대로,
events_statements_current에서 digest 없이 (이 경우 DIGEST와
DIGEST_TEXT 컬럼이
NULL) 상세한 statement를 얻을 수도 있습니다.
statement digesting에 대한 자세한 내용은 Section 29.10, “Performance Schema Statement Digests and Sampling”을 참조하십시오.
29.4.6 Pre-Filtering by Thread
29.4.8 Example Consumer Configurations