5.4.1.1 연결 프로브
connection-start
와 connection-done
프로브는 연결 소켓을 통해 또는 네트워크 연결을 통해 여부에 관계없이 클라이언트에서 연결을 묶습니다.
connection-start (connectionid, user host) connection-done (status, connectionid)
connection-start
: 연결 및 정상적인 로그인 및 인증이 클라이언트에서 실행 된 후에 트리거됩니다. 인수에는 다음의 연결 정보가 포함되어 있습니다.connectionid
: 연결 ID를 저장하는unsigned long
. 이것은SHOW PROCESSLIST
의 출력Id
값에 표시되는 프로세스 ID와 동일합니다.user
: 인증에 사용되는 사용자 이름입니다. 익명 사용자의 경우, 값은 공백입니다.host
: 클라이언트 연결의 호스트. UNIX 소켓을 사용하여 실행되는 연결의 경우, 값은 공백입니다.
connection-done
: 클라이언트에 대한 연결이 종료 될 때 트리거됩니다. 인수는 다음과 같습니다.status
: 연결이 종료되었을 때의 그 상태. 로그 아웃 작업은 값 0, 그렇지 연결의 종료는 0이 아닌 값입니다.connectionid
: 클로즈 된 접속 연결 ID.
다음의 D 스크립트는 개별 연결의 평균 기간을 정량화하고 요약 카운트를 수치화하여 60 초마다 정보를 덤프합니다.
#! / usr / sbin / dtrace -s mysql * ::: connection-start { self-> start = timestamp; } mysql * ::: connection-done / self-> start / { @ = quantize (((timestamp - self-> start) / 1000000)); self-> start = 0; } tick-60s { printa (@); }
다수의 클라이언트가있는 서버에서 실행하면 다음과 같은 결과가 나타날 수 있습니다.
1 57413 : tick-60s value ------------- Distribution ------------- count -1 | 0 0 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30011 1 | 59 2 | 5 4 | 20 8 | 29 16 | 18 32 | 27 64 | 30 128 | 11 256 | 10 512 | 1 1024 | 6 2048 | 8 4096 | 9 8192 | 8 16384 | 2 32768 | 1 65536 | 1 131072 | 0 262144 | 1 524288 | 0