2013-08-12 3 views
2

Я хочу использовать systemtap для отслеживания MySQL.
Проблема заключается в том, после того, как MySQL настроен и построен, и я запустить сервер, я не могу получить данные маркеры, которые присутствуют на сервере:
Трассировка mysqld Использование SystemTap

[[email protected]]$ stap -l 'process("/home/mysql/mysql5.5.33/bin/mysqld").mark("*")'
[[email protected]]$(ничего Ouput)

Мой окр следующим образом:

1 stap version 
$ stap --version 
Systemtap translator/driver (version 1.7/0.152 non-git sources) 
Copyright (C) 2005-2012 Red Hat, Inc. and others 
This is free software; see the source for copying conditions. 
enabled features: AVAHI LIBRPM LIBSQLITE3 NSS BOOST_SHARED_PTR TR1_UNORDERED_MAP NLS 

2 настроить MySQL, используя скрипт следующим образом:

cmake \ 
-DCMAKE_INSTALL_PREFIX=/home/mysql/mysql5.6.12 \ 
-DDEFAULT_CHARSET=utf8 \ 
-DDEFAULT_COLLATION=utf8_general_ci \ 
-DWITH_MYISAM_STORAGE_ENGINE=1 \ 
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ 
-DENABLED_LOCAL_INFILE=1 \ 
-DENABLED_DTRACE=1 \ 
-DWITH_DEBUG=1 \ 

КСТАТИ: я могу получить выход функции
[[email protected]] stap -L 'process("/home/mysql/mysql5.6.12/bin/mysqld").function("main")'
process("/home/mysql/mysql5.6.12/bin/mysqld").function("[email protected]/home/mysql/mysql-5.6.12/sql/main.cc:23") $argc:int $argv:char**

readelf -n /home/mysql/mysql5.6.12/bin/mysqld
`Заметки по смещению 0x0000021c с длиной 0x00000020:
размер Владелец данных Описание
GNU 0x00000010 NT_GNU_ABI_TAG (ABI версия тег)

Примечания по смещению 0x0000023c с длиной 0x00000024:
размер Владелец данных Описание
GNU 0x00000014 NT_GNU_BUILD_ID (уникальный ID сборки битовая) `

+0

Включает ли «readelf -n /home/mysql/mysql5.6.12/bin/mysqld» некоторые бит NT_STAPSDT? – fche

+0

readelf -n /home/mysql/mysql5.6.12/bin/mysqld Примечания по смещению 0x0000021c с длиной 0x00000020: размер Владелец данных Описание ГНУ 0x00000010 NT_GNU_ABI_TAG (ABI версии тега) Примечания по смещению 0x0000023c с длиной 0x00000024: Владелец Размер данных Описание GNU 0x00000014 NT_GNU_BUILD_ID (уникальная битовая строка сборки) ' – orain

ответ

2

Кажется, что -DENABLED_DTRACE = 1 бит для MySQL не достаточно для компиляции в инструментария sys/sdt.h. Если бы они это сделали, вы бы увидели дополнительные данные в самом себе. Вы можете попробовать посмотреть отдельные файлы .o в дереве сборки mysql. Например, пакет MariaDB-сервер Fedora 19 действительно есть маркеры:

% stap -L 'process("/usr/libexec/mysqld").mark("*")' 
process("/usr/libexec/mysqld").mark("command__done") $arg1:long 
...54 lines omitted... 
process("/usr/libexec/mysqld").mark("update__start") $arg1:long 

И он настроен с -DENABLE_DTRACE = ON. Возможно, ваша - это просто -DENABLED_DTRACE vs -DENABLE_DTRACE опечатка?

+0

thx, у меня будет попытка :-) – orain

Смежные вопросы