MySQL Slave lag很高,逐渐增加,表面现象是slave
sql进程很慢,从MySQL角度已经找到原因,在此通过perf验证。
perf是一款Linux性能分析工具。Linux性能计数器是一个新的基于内核的子系统,它提供一个性能分析框架,比如硬件(CPU、PMU(Performance
Monitoring
Unit))功能和软件(软件计数器、tracepoint)功能。通过perf,应用程序可以利用PMU、tracepoint和内核中的计数器来进行性能统计。它不但可以分析制定应用程序的性能问题(per thread),也可以用来分析内核的性能问题。
以下是安装和使用perf:
download perf soft,upload /home/dba
https://centos.pkgs.org/7/centos-x86_64/perf-3.10.0-957.el7.x86_64.rpm.html
[root@f08-kk-mysql02 yum.repos.d]#
[root@f08-kk-mysql02 yum.repos.d]# cd /home
[root@f08-kk-mysql02 home]# cd dba
[root@f08-kk-mysql02 dba]# ls
1.txt autoquery.sql
mysqldb02-slow.log
perf-3.10.0-957.el7.x86_64.rpm
query.sql
zabbix-agent-3.4.9-1.el7.x86_64.rpm
zabbix_agentd.conf
[root@f08-kk-mysql02 dba]# ls -l
total 9804
-rw-rw-r-- 1 dba dba
0
Aug 5 16:27 1.txt
-rw-rw-r-- 1 dba dba
5204 May 31 19:19
autoquery.sql
-rw-r----- 1 dba dba
722897 Aug 5 10:25
mysqldb02-slow.log
-rw-rw-r-- 1 dba dba
8910888 Aug 6 11:24
perf-3.10.0-957.el7.x86_64.rpm
-rw-r--r-- 1 root root
1976 May 31 23:25 query.sql
-rw-rw-r-- 1 root root 372920 May 31 16:14
zabbix-agent-3.4.9-1.el7.x86_64.rpm
-rw-rw-r-- 1 root root
10604 May 31 16:14 zabbix_agentd.conf
[root@f08-kk-mysql02 dba]# rpm -ivh
perf-3.10.0-957.el7.x86_64.rpm
Preparing...
################################# [100%]
Updating / installing...
1:perf-3.10.0-957.el7
################################# [100%]
[root@f08-kk-mysql02 dba]# perf top
Samples: 19K of event 'cycles:ppp', Event count (approx.):
13810545003
Overhead Shared Object
Symbol
7.31% mysqld
[.] btr_search_guess_on_hash
5.63% mysqld
[.] buf_page_get_gen
5.63%
libc-2.17.so
[.]
__strcmp_sse42
5.61% mysqld
[.] rec_get_offsets_func
4.52%
libc-2.17.so
[.]
_int_malloc
4.05%
mysqld
[.]
row_vers_impl_x_locked
3.90%
mysqld
[.]
dict_table_copy_types
3.44%
mysqld
[.]
cmp_dtuple_rec_with_match_low
2.64%
mysqld
[.] row_build_low
2.56%
libc-2.17.so
[.]
__strrchr_sse42
2.52%
mysqld
[.]
mem_heap_create_block_func
2.23%
mysqld
[.]
trx_undo_prev_version_build
2.16%
libc-2.17.so
[.]
_int_free
2.02%
mysqld
[.]
trx_undo_update_rec_get_update
1.91%
mysqld
[.]
lock_rec_convert_impl_to_expl
1.85%
mysqld
[.] PolicyMutex
>::enter
1.57%
mysqld
[.]
ut_new_get_key_by_file
1.54%
mysqld
[.]
mtr_t::Command::release_all
1.44%
libc-2.17.so
[.]
malloc
1.44%
mysqld
[.] PolicyMutex
>::exit
1.39%
mysqld
[.]
buf_page_get_known_nowait
1.34%
mysqld
[.]
row_build_index_entry_low
1.32%
mysqld
[.]
lock_sec_rec_read_check_and_lock
1.31%
mysqld
[.] buf_block_from_ahi
1.18%
mysqld
[.]
pfs_start_mutex_wait_v1
1.18%
mysqld
[.]
buf_page_make_young_if_needed
1.09%
mysqld
[.] btr_search_s_unlock
1.08%
mysqld
[.] mem_heap_block_free
1.06%
mysqld
[.] row_search_mvcc
1.04%
mysqld
[.]
trx_undo_get_undo_rec_low
0.99%
mysqld
[.] mtr_t::start
0.93%
mysqld
[.] row_get_clust_rec
0.92%
mysqld
[.]
btr_cur_search_to_nth_level
0.84%
mysqld
[.] lock_rec_lock
0.82%
mysqld
[.] pfs_unlock_mutex_v1
0.81%
mysqld
[.]
mtr_t::Command::release_resources
0.79%
mysqld
[.] ut_basename_noext
0.75%
mysqld
[.]
pfs_start_rwlock_wait_v1
0.75%
mysqld
[.] strcmp@plt
0.72%
mysqld
[.] pfs_memory_alloc_v1
0.71%
mysqld
[.] row_build_row_ref
0.67%
libc-2.17.so
[.]
__memmove_ssse3_back
0.63%
mysqld
[.]
btr_search_check_guess
0.63%
mysqld
[.]
row_upd_changes_field_size_or_external
0.58%
mysqld
[.]
row_upd_rec_in_place
0.48%
mysqld
[.]
dict_index_get_nth_field_pos
0.48%
mysqld
[.]
pfs_unlock_rwlock_v1
0.47%
mysqld
[.]
dict_index_copy_types
0.47%
mysqld
[.] mtr_t::commit
0.44%
mysqld
[.] rw_lock_s_lock_low
0.44%
mysqld
[.]
trx_undo_rec_get_pars
0.42%
mysqld
[.] find_memory_class
0.39%
mysqld
[.]
trx_undo_update_rec_get_sys_cols
0.39%
mysqld
[.] PolicyMutex
>::exit
0.39%
mysqld
[.]
row_unlock_for_mysql
0.38%
mysqld
[.]
row_search_on_row_ref
0.36%
mysqld
[.] mem_heap_dup
0.35%
mysqld
[.] sel_set_rec_lock
0.35%
mysqld
[.] rw_lock_s_lock_func
0.31%
mysqld
[.] PolicyMutex
>::enter
For a higher level overview, try: perf top --sort
comm,dso
加载中,请稍候......