Spec-Zone .ru
спецификации, руководства, описания, API
|
connection-start
и connection-done
зонды включают
соединение от клиента, независимо от того, является ли соединение через сокет или сетевое соединение.
connection-start(connectionid, user, host)connection-done(status, connectionid)
connection-start
: Инициированный после того, как
соединение и успешный вход в систему/аутентификация были завершены клиентом. Параметры содержат
информацию о соединении:
connectionid
: unsigned
long
содержа ID соединения. Это - то же самое как ID процесса, показанный как Id
значение в выводе от SHOW PROCESSLIST
.
user
: Имя пользователя, используемое,
аутентифицируя. Значение будет пробелом для анонимного пользователя.
host
: Узел клиентского соединения. Для
соединения, сделанного, используя сокеты UNIX, значение будет пробелом.
connection-done
: Инициированный так же, как соединение
с клиентом было закрыто. Параметры:
status
: Состояние соединения, когда это
было закрыто. У работы выхода из системы будет значение 0; у любого другого завершения
соединения есть ненулевое значение.
connectionid
: ID соединения соединения,
которое было закрыто.
Следующий сценарий D будет определять количество и суммировать среднюю продолжительность отдельных соединений, и обеспечивать количество, выводя информацию каждые 60 секунд:
#!/usr/sbin/dtrace -smysql*:::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 | 1524288 | 0