I am looking for guidance on debugging such things without having to reinstall the mysql server on my machine.
. , - , . , , , .
DTrace! , ( ).
DTrace , , Solaris, Mac OS X * FreeBSD, , Linux. ( BPF Linux 4.9-rc1).
* Mac OS X DTrace, System Integrity Protection
mysqld , :
dtrace -p $(pgrep -x mysqld) -F -n 'pid$target:mysqld::entry{} pid$target:mysqld::return{}'
... InnoDB :
2 -> sync_arr_wake_threads_if_sema_free
6 -> os_event_reset
2 -> os_mutex_enter
6 <- os_event_reset
2 <- os_mutex_enter
6 -> pfs_mutex_exit_func
6 <- pfs_mutex_exit_func
2 -> os_mutex_exit
6 -> os_event_reset
2 <- os_mutex_exit
6 <- os_event_reset
, MySQL!
dtrace -p $(pgrep -x mysqld) -F -n 'pid$target:mysqld:*dispatch_command*:entry{printf("Query: %s\n", copyinstr(arg2));}'
:
CPU FUNCTION
0 -> dispatch_command(enum_server_command, THD*, char*, unsigned int) Query: SHOW VARIABLES LIKE 'pid_file'
, DTrace , , . : mysqld:*dispatch_command*:entry - , , pid$target:mysqld::entry|return , . mysqld:*dispatch_command*:exit . , , , .
, ; MySQL , DTrace .
, DTraceToolkit, , , , , , , .. , , DTrace.
, Ben Rockwood, MySQL DTrace. .
DTrace Brendan DTrace book. , , .