當前位置:
首頁 > 知識 > 用dtrace 跟蹤 mysql-community-server-5.6.20

用dtrace 跟蹤 mysql-community-server-5.6.20

第一部分:oracle linux 7.3 dtrace 安裝:

http://public-yum.oracle.com/

內核升極到

[root@server1 SPECS]# uname -r

4.1.12-94.3.8.el7uek.x86_64

yum install

kernel-uek-firmware-4.1.12-94.3.8.el7uek.noarch

kernel-uek-debug-devel-4.1.12-94.3.8.el7uek.x86_64

kernel-uek-doc-4.1.12-94.3.8.el7uek.noarch

kernel-uek-devel-4.1.12-94.3.8.el7uek.x86_64

kernel-uek-4.1.12-94.3.8.el7uek.x86_64

安裝DTRACE 程序

yum install

dtrace-utils-devel-0.6.0-3.el7.x86_64 //手動下載

dtrace-utils-0.6.0-3.el7.x86_64 //手動下載

dtrace-modules-4.1.12-94.3.8.el7uek-0.6.0-4.el7.x86_64

探針模塊載入:

[root@server1 ~]# cat probe.sh

cd /usr/lib/modules/4.1.12-94.3.8.el7uek.x86_64/kernel/drivers/dtrace/

modprobe fbt

modprobe profile

modprobe systrace

modprobe fasttrap

modprobe dtrace

modprobe sdt

測試:

Testing function entry codes

[root@oel65 Dtrace]# dtrace -n "syscall::open:entry { printf("Exec: %s File: %s" , execname , stringof(arg0) ); }"

dtrace: description "syscall::open:entry " matched 1 probe

CPU ID FUNCTION:NAME

0 8 open:entry Exec: udisks-daemon File: /dev/sr0

0 8 open:entry Exec: vminfo File: /var/run/utmp

0 8 open:entry Exec: vminfo File: /etc/passwd

第二部分MYSQL 安裝

1.選擇版本:mysql-community-server-5.6.20 起開始內置dtrace(但是mysql 8.0 移除)

2.下載:

http://public-yum.oracle.com/

http://public-yum.oracle.com/repo/OracleLinux/OL7/MySQL56/x86_64/index.html下載四個文件

mysql-community-client-5.6.20-4.el7.x86_64.rpm

mysql-community-common-5.6.20-4.el7.x86_64.rpm

mysql-community-server-5.6.20-4.el7.x86_64.rpm

mysql-community-libs-5.6.20-4.el7.x86_64.rpm

3.安裝:

rpm -ivh mysql-community-libs-5.6.20-4.el7.x86_64.rpm

rpm -ivh mysql-community-common-5.6.20-4.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.6.20-4.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.6.20-4.el7.x86_64.rpm

4.文件安裝位置

[root@server1 data]# rpm -ql mysql-community-server-5.6.20-4.el7.x86_64

/etc/logrotate.d/mysql

/etc/my.cnf

/usr/bin/innochecksum

/usr/bin/my_print_defaults

/usr/bin/myisam_ftdump

/usr/bin/myisamchk

/usr/bin/myisamlog

/usr/bin/myisampack

/usr/bin/mysql-systemd-start

/usr/bin/mysql_convert_table_format

/usr/bin/mysql_fix_extensions

/usr/bin/mysql_install_db

/usr/bin/mysql_plugin

/usr/bin/mysql_secure_installation

/usr/bin/mysql_tzinfo_to_sql

/usr/bin/mysql_upgrade

/usr/bin/mysql_zap

/usr/bin/mysqlbug

/usr/bin/mysqld_multi

/usr/bin/mysqld_safe

/usr/bin/mysqldumpslow

/usr/bin/mysqlhotcopy

/usr/bin/mysqltest

/usr/bin/perror

/usr/bin/replace

/usr/bin/resolve_stack_dump

/usr/bin/resolveip

/usr/lib/systemd/system/mysqld.service

/usr/lib/tmpfiles.d/mysql.conf

/usr/lib64/mysql/plugin

/usr/lib64/mysql/plugin/adt_null.so

/usr/lib64/mysql/plugin/auth.so

/usr/lib64/mysql/plugin/auth_socket.so

/usr/lib64/mysql/plugin/auth_test_plugin.so

/usr/lib64/mysql/plugin/daemon_example.ini

/usr/lib64/mysql/plugin/debug

/usr/lib64/mysql/plugin/debug/adt_null.so

/usr/lib64/mysql/plugin/debug/auth.so

/usr/lib64/mysql/plugin/debug/auth_socket.so

/usr/lib64/mysql/plugin/debug/auth_test_plugin.so

/usr/lib64/mysql/plugin/debug/innodb_engine.so

/usr/lib64/mysql/plugin/debug/libdaemon_example.so

/usr/lib64/mysql/plugin/debug/libmemcached.so

/usr/lib64/mysql/plugin/debug/mypluglib.so

/usr/lib64/mysql/plugin/debug/qa_auth_client.so

/usr/lib64/mysql/plugin/debug/qa_auth_interface.so

/usr/lib64/mysql/plugin/debug/qa_auth_server.so

/usr/lib64/mysql/plugin/debug/semisync_master.so

/usr/lib64/mysql/plugin/debug/semisync_slave.so

/usr/lib64/mysql/plugin/debug/validate_password.so

/usr/lib64/mysql/plugin/innodb_engine.so

/usr/lib64/mysql/plugin/libdaemon_example.so

/usr/lib64/mysql/plugin/libmemcached.so

/usr/lib64/mysql/plugin/mypluglib.so

/usr/lib64/mysql/plugin/qa_auth_client.so

/usr/lib64/mysql/plugin/qa_auth_interface.so

/usr/lib64/mysql/plugin/qa_auth_server.so

/usr/lib64/mysql/plugin/semisync_master.so

/usr/lib64/mysql/plugin/semisync_slave.so

/usr/lib64/mysql/plugin/validate_password.so

/usr/sbin/mysqld

/usr/sbin/mysqld-debug

/usr/share/doc/mysql-community-server-5.6.20

/usr/share/doc/mysql-community-server-5.6.20/COPYING

/usr/share/doc/mysql-community-server-5.6.20/ChangeLog

/usr/share/doc/mysql-community-server-5.6.20/INFO_BIN

/usr/share/doc/mysql-community-server-5.6.20/INFO_SRC

/usr/share/doc/mysql-community-server-5.6.20/README

/usr/share/doc/mysql-community-server-5.6.20/my-default.cnf

/usr/share/man/man1/innochecksum.1.gz

/usr/share/man/man1/my_print_defaults.1.gz

/usr/share/man/man1/myisam_ftdump.1.gz

/usr/share/man/man1/myisamchk.1.gz

/usr/share/man/man1/myisamlog.1.gz

/usr/share/man/man1/myisampack.1.gz

/usr/share/man/man1/mysql.server.1.gz

/usr/share/man/man1/mysql_convert_table_format.1.gz

/usr/share/man/man1/mysql_fix_extensions.1.gz

/usr/share/man/man1/mysql_install_db.1.gz

/usr/share/man/man1/mysql_plugin.1.gz

/usr/share/man/man1/mysql_secure_installation.1.gz

/usr/share/man/man1/mysql_tzinfo_to_sql.1.gz

/usr/share/man/man1/mysql_upgrade.1.gz

/usr/share/man/man1/mysql_zap.1.gz

/usr/share/man/man1/mysqlbug.1.gz

/usr/share/man/man1/mysqld_multi.1.gz

/usr/share/man/man1/mysqld_safe.1.gz

/usr/share/man/man1/mysqldumpslow.1.gz

/usr/share/man/man1/mysqlhotcopy.1.gz

/usr/share/man/man1/mysqlman.1.gz

/usr/share/man/man1/mysqltest.1.gz

/usr/share/man/man1/perror.1.gz

/usr/share/man/man1/replace.1.gz

/usr/share/man/man1/resolve_stack_dump.1.gz

/usr/share/man/man1/resolveip.1.gz

/usr/share/man/man8/mysqld.8.gz

/usr/share/mysql/SELinux/RHEL4/mysql.fc

/usr/share/mysql/SELinux/RHEL4/mysql.te

/usr/share/mysql/dictionary.txt

/usr/share/mysql/fill_help_tables.sql

/usr/share/mysql/innodb_memcached_config.sql

/usr/share/mysql/magic

/usr/share/mysql/my-default.cnf

/usr/share/mysql/mysql-log-rotate

/usr/share/mysql/mysql_security_commands.sql

/usr/share/mysql/mysql_system_tables.sql

/usr/share/mysql/mysql_system_tables_data.sql

/usr/share/mysql/mysql_test_data_timezone.sql

/var/lib/mysql

/var/run/mysqld

5. 配製my.cnf

datadir mysql.sock error.log etc

6.測試

dtrace -l |c++filt

58746 mysql5011 mysqld ha_myisam::rnd_next(unsigned char*) read-row-start

58747 mysql5011 mysqld ha_tina::rnd_pos(unsigned char*, unsigned char*) read-row-start

58748 mysql5011 mysqld ha_tina::rnd_next(unsigned char*) read-row-start

58749 mysql5011 mysqld ha_blackhole::rnd_next(unsigned char*) read-row-start

58750 mysql5011 mysqld ha_blackhole::rnd_pos(unsigned char*, unsigned char*) read-row-start

58751 mysql5011 mysqld handle_select(THD*, select_result*, unsigned long) select-done

58752 mysql5011 mysqld handle_select(THD*, select_result*, unsigned long) select-start

58753 mysql5011 mysqld mysql_execute_command(THD*) update-done

58754 mysql5011 mysqld handler::ha_update_row(unsigned char const*, unsigned char*) update-row-done

58755 mysql5011 mysqld handler::ha_update_row(unsigned char const*, unsigned char*) update-row-start

58756 mysql5011 mysqld mysql_execute_command(THD*) update-start

用dtrace 跟蹤 mysql-community-server-5.6.20


學安卓,免學費!50天興趣課程等你來搶!http://www.ujiuye.com/xydt/2017/13042.html?wt.bd=lgh23524tt

2017大學生就業扶助基金:http://www.ujiuye.com/zt/jyfc/?wt.bd=lgh23524tt

IT學習就業交流互動平台:http://www.ujiuye.com/zt/qqhdjlpt/?wt.bd=lgh23524tt

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT優就業 的精彩文章:

linux 常用 掌握要點(一)
linux 常用 掌握要點(二)
你得到的看起來是美酒,其實是毒藥
js中變數的連續賦值
如何利用PHP語言壓縮圖片?PHP入門教程

TAG:IT優就業 |

您可能感興趣

MIT基於AI研發新型衛星地圖道路識別系統Roadtracer
自動駕駛的最大難點之一「地圖繪製工作」,被RoadTracer解決了一半
淺談動態跟蹤技術之DTrace