22.4 Performance Schema Instrument Naming Conventions
instrument 이름은 '/'
문자로 구분 된 일련의 구성 요소로 구성됩니다. 이름 예 :
wait/io/file/myisam/log wait/io/file/mysys/charset wait/lock/table/sql/handler wait/synch/cond/mysys/COND_alarm wait/synch/cond/sql/BINLOG::update_cond wait/synch/mutex/mysys/BITMAP_mutex wait/synch/mutex/sql/LOCK_delete wait/synch/rwlock/sql/Query_cache_query::lock stage/sql/closing tables stage/sql/Sorting result statement/com/Execute statement/com/Query statement/sql/create_table statement/sql/lock_tables
instrument의 이름 공간은 트리 형태의 구조를 가지고 있습니다. instrument 이름의 구성 요소는 왼쪽에서 오른쪽으로,보다 일반적인에서보다 구체적으로 진행합니다. 이름의 컴퍼넌트 수는 instrument의 종류에 따라 다릅니다.
이름의 특정 구성 요소의 해석은 그 왼쪽 구성 요소에 따라 다릅니다. 예를 들어, myisam
은 다음의 이름에 모두 볼 수 있지만 첫 번째 이름 myisam
은 파일 I / O와 관련하여 두 번째 그것은 동기화 instrument 관련 있습니다.
wait/io/file/myisam/log wait/synch/cond/myisam/MI_SORT_INFO::cond
instrument 이름은 성능 스키마 구현에 의해 정의 된 구조를 갖는 프리픽스와 instrument 코드를 구현하는 개발자에 의해 정의되는 접미사로 구성됩니다. instrument 프리픽스의 최상위 요소는 instrument의 종류를 나타냅니다. 이 구성 요소는 instrument에 적용되는 setup_timers
테이블의 이벤트 타이머도 결정됩니다. instrument의 접두어 부분의 최상위는 instrument의 종류를 나타냅니다.
instrument 이름의 접미사 부분은 instrument 자체의 코드에서 생성됩니다. 접미사에는 다음과 같은 레벨이 포함될 수 있습니다.
주요 구성 요소의 이름 (
myisam
,innodb
,mysys
또는sql
등의 서버 모듈) 또는 플러그인 이름.형식
XXX
(전역 변수) 또는
(클래스CCC
::MMM
CCC
멤버MMM
)의 코드 내의 변수의 이름입니다. 예 :COND_thread_cache
,THR_LOCK_myisam
,BINLOG::LOCK_index
.
Top-Level instrument 구성 요소
idle
: instrument 된 아이돌 이벤트. 이 instrument는 그 이상의 구성 요소가 없습니다.stage
: instrument 된 스테이지 이벤트.statement
: instrument 된 문 이벤트.wait
: instrument 된 대기 이벤트.
Idle instrument 구성 요소
idle
아이돌 instrument. 성능 스키마는 섹션 22.9.3.5 "socket_instances 테이블" 의
socket_instances.STATE
컬럼의 설명에 표시된 것처럼, 아이돌 이벤트를 생성합니다.
Stage instrument 구성 요소
무대 instrument는 형식 stage/
의 이름을가집니다. 여기에서 code_area
/ stage_name
code_area
는 sql
과 myisam
등의 이름으로 stage_name
은 Sorting result
와 Sending data
등의 문 처리 단계를 나타냅니다. 스테이지는 SHOW PROCESSLIST
의해 표시되거나 INFORMATION_SCHEMA.PROCESSLIST
테이블에 표시되는 스레드의 상태에 대응합니다.
Statement instrument 구성 요소
statement/abstract/*
: 문 조작의 추상 instrument. 추상 instrument는 정확한 문의 종류를 알 수 전 문 분류의 초기 단계 동안 사용 된 후 종류가 깨달을 때 더 구체적인 문 instrument로 변경됩니다. 이 프로세스에 대한 설명은 섹션 22.9.6 "성능 스키마 문 이벤트 테이블" 을 참조하십시오.statement/com
: instrument 된 명령 조작. 이들은COM_
조작에 대응하는 이름을가집니다 (xxx
mysql_com.h
헤더 파일과sql/sql_parse.cc
를 참조하십시오. 예를 들어,statement/com/Connect
및statement/com/Init DB
instrument는COM_CONNECT
및COM_INIT_DB
명령에 대응합니다.statement/sql
: instrument 된 SQL 문 조작. 예를 들어,statement/sql/create_db
및statement/sql/select
instrument는CREATE DATABASE
및SELECT
문에 사용됩니다.
Wait instrument 구성 요소
wait/io
instrument 된 I / O 작업.
wait/io/file
instrument 된 파일 I / O 작업. 파일의 경우, 대기는 파일 작업 완료 (예를 들어,
fwrite()
의 호출)을 기다리는 시간입니다. 캐시 때문에이 호출에서 디스크에 물리적 인 파일 I / O되지 않을 수 있습니다.wait/io/socket
instrument 된 소켓 작업. 소켓 instrument는 형식
wait/io/socket/sql/
의 이름을가집니다. 서버는 자신이 지원하는 네트워크 프로토콜 대기 소켓이 있습니다. TCP / IP 또는 Unix 소켓 파일 연결 대기 소켓에 연결된 instrument는 각각socket_type
server_tcpip_socket
또는server_unix_socket
의socket_type
값을가집니다. 수신 소켓 연결을 감지하면 서버는 연결을 별도의 스레드에 의해 관리되는 새로운 소켓에 전송합니다. 새 연결 스레드의 instrument는client_connection
의socket_type
값을가집니다.wait/io/table
instrument 된 테이블 I / O 작업. 여기에는 영구 기본 테이블 또는 임시 테이블에 행 수준 액세스가 포함됩니다. 행에 영향을주는 작업은 페치, 삽입, 업데이트 및 삭제합니다. 뷰의 경우, 대기는 뷰가 참조하는 기본 테이블에 연결됩니다.
대부분의 대기뿐만 아니라 테이블 I / O 대기는 다른 대기도 포함될 수 있습니다. 예를 들어, 테이블 I / O는 파일 I / O 나 메모리 조작이 포함될 수 있습니다. 따라서 테이블 I / O 대기
events_waits_current
에는 보통 두 줄 있습니다. 자세한 내용은 섹션 22.6 "성능 스키마의 원자 적 및 분자 이벤트" 를 참조하십시오.일부 라인 작업은 여러 테이블 I / O 대기가 발생할 수 있습니다. 예를 들어, 삽입 업데이트를 발생시키는 트리거를 활성화 할 수 있습니다.
wait/lock
instrument 된 잠금 작업.
wait/lock/table
instrument 된 테이블 잠금 작업.
wait/synch
instrument 된 동기화 객체. 동기화 객체는
TIMER_WAIT
시간에는 개체에 잠금 장치가있는 경우에 그 획득을 시도하는 동안 차단되는 시간의 양이 포함됩니다.wait/synch/cond
조건은 하나의 스레드에서 다른 스레드에 그들이 기다리는 일이 발생했음을 알리는 데 사용됩니다. 단일 스레드가 조건을 대기하고 있었을 경우, 그것은 깨워 그 실행을 재개 할 수 있습니다. 여러 스레드가 대기하고 있었을 경우, 그들 모두가 깨워 그들이 대기하고 있던 자원을 놓고 경쟁 할 수 있습니다.
wait/synch/mutex
다른 thread의 리소스에 대한 액세스를 방해하면서 자원 (실행 코드 섹션 등)에 대한 액세스를 허용하기 위해 사용되는 상호 배타적 객체.
wait/synch/rwlock
다른 thread에 의한 사용을 방해하면서 특정 변수의 액세스를 잠그는 데 사용되는 읽기 / 쓰기 잠금 객체. 공유 읽기 잠금은 여러 스레드에서 동시에 획득 할 수 있습니다. 독점 쓰기 잠금은 한 번에 하나의 스레드 만 적립됩니다.