版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MySQL全量SQL分析与审计平台介绍技术创新 变革未来l Performance Schema介绍l 设计思路l 系统架构l 数据采集服务l 数据加载服务l 性能分析案例内容背景介绍日常运维中会碰到一些问题:lCPU使用率瞬间升高lMySQL并发线程数瞬间升高lQPS瞬间飙升l慢查询突然增多l网卡流量突然增大l磁盘的IOPS突然升高l排障方法l查看性能监控lshow processlistlshow engine innodb statuslpt-stalkl持续时间短,很难抓到现场数据库分钟级别的监控已不能满足我们的要求方案选型lTcpdumplProxylPerformance sche
2、mal系统数据库MySQL 5.7 Performance Schema相关表Instrumentation Setupsetup_instruments setup_consumers setup_actors setup_objects setup_timersStatementsevents_statements_current events_statements_history events_statements_history_long events_statements_summary_by_digest events_statements_summary_by_program e
3、vents_statements_summary_global_by_event_nameevents_statements_summary_by_thread_by_event_name events_statements_summary_by_account_by_event_name events_statements_summary_by_host_by_event_name events_statements_summary_by_user_by_event_namesetup_consumers 层次图global_instrumentationstatements_digestt
4、hread_instrumentationevents_statements_currentevents_statements_currentevents_statements_history_long+| NAME| ENABLED |+| events_stages_current| events_stages_history| events_stages_history_long| events_statements_current| events_statements_history| NO| NO| NO| YES| NO| events_statements_history_lon
5、g | YES| events_waits_current| NO| events_waits_history| NO| events_waits_history_long| NO| global_instrumentation| YES| thread_instrumentation| YES| statements_digest| YES|+开启 performance_schemal mysql5.6.6 以上版本默认开启,f中配置 mysqldperformance_schema=ONlUPDATE setup_consumers SET ENABLED=YES WHERE NAME=
6、events_statements_history_long;lUPDATE setup_instruments SET enabled=NO,TIMED=NO WHERE NAME IN (statement/com/InitDB,statement/com/Ping,statement/com/Quit,statement/sql/commit,statement/com/Prepare,statement/sql/show_warnings);+| NAME| ENABLED | TIMED |+| statement/sql/select| YES| statement/sql/alt
7、er_table | YES| statement/sql/update| YES| statement/sql/insert| YES| statement/sql/delete| YES| statement/sql/truncate| YES| YES | YES | YES | YES | YES | YES | statement/sql/drop_table| YES| YES |+events_statements_history_long表CREATE TABLE events_statements_history_long (THREAD_ID bigint(20) unsi
8、gned NOT NULL,EVENT_ID bigint(20) unsigned NOT NULL,END_EVENT_ID bigint(20) unsigned DEFAULT NULL,EVENT_NAME varchar(128) NOT NULL,SOURCE varchar(64) DEFAULT NULL,TIMER_START bigint(20) unsigned DEFAULT NULL,TIMER_END bigint(20) unsigned DEFAULT NULL,TIMER_WAIT bigint(20) unsigned DEFAULT NULL,LOCK_
9、TIME bigint(20) unsigned NOT NULL,SQL_TEXT longtext,DIGEST varchar(32) DEFAULT NULL,DIGEST_TEXT longtext,CURRENT_SCHEMA varchar(64) DEFAULT NULL,OBJECT_TYPE varchar(64) DEFAULT NULL,OBJECT_SCHEMA varchar(64) DEFAULT NULL,OBJECT_NAME varchar(64) DEFAULT NULL,OBJECT_INSTANCE_BEGIN bigint(20) unsigned
10、DEFAULT NULL,MYSQL_ERRNO int(11) DEFAULT NULL,RETURNED_SQLSTATE varchar(5) DEFAULT NULL,MESSAGE_TEXT varchar(128) DEFAULT NULL,ERRORS bigint(20) unsigned NOT NULL,WARNINGS bigint(20) unsigned NOT NULL,ROWS_AFFECTED bigint(20) unsigned NOT NULL,ROWS_SENT bigint(20) unsigned NOT NULL,ROWS_EXAMINED big
11、int(20) unsigned NOT NULL,CREATED_TMP_DISK_TABLES bigint(20) unsigned NOT NULL,CREATED_TMP_TABLES bigint(20) unsigned NOT NULL,SELECT_FULL_JOIN bigint(20) unsigned NOT NULL,SELECT_FULL_RANGE_JOIN bigint(20) unsigned NOT NULL,SELECT_RANGE bigint(20) unsigned NOT NULL,SELECT_RANGE_CHECK bigint(20) uns
12、igned NOT NULL,SELECT_SCAN bigint(20) unsigned NOT NULL,SORT_MERGE_PASSES bigint(20) unsigned NOT NULL,SORT_RANGE bigint(20) unsigned NOT NULL,SORT_ROWS bigint(20) unsigned NOT NULL,SORT_SCAN bigint(20) unsigned NOT NULL,NO_INDEX_USED bigint(20) unsigned NOT NULL,NO_GOOD_INDEX_USED bigint(20) unsign
13、ed NOT NULL,NESTING_EVENT_ID bigint(20) unsigned DEFAULT NULL,NESTING_EVENT_TYPE enum(TRANSACTION,STATEMENT,STAGE,WAIT) DEFAULT NULL,NESTING_EVENT_LEVEL int(11) DEFAULT NULL,CLIENT_USER varchar(128) DEFAULT NULL,CLIENT_HOST varchar(128) DEFAULT NULL,RU_UTIME bigint(20) unsigned DEFAULT NULL,RU_STIME
14、 bigint(20) unsigned DEFAULT NULL,LOGIC_READ bigint(20) unsigned NOT NULL,PHYSIC_READ bigint(20) unsigned NOT NULL,PAGE_WRITE bigint(20) unsigned NOT NULL) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8关键字段SQL_TEXT: SELECT * FROM testdb.sbtest1 where k1648952 ORDER BY rand() LIMIT 10 DIGEST: 6ea1437
15、fc7c276d66f7a98d06f938527DIGEST_TEXT: SELECT * FROM testdb . sbtest1 WHERE k ? ORDER BY rand ( ) LIMIT ? EVENT_NAME: statement/sql/selectSTART_TIME: 2019-04-22 15:12:15.040178END_TIME: 2019-04-22 15:12:15.615435TIMER_WAIT_MS: 575.3CURRENT_SCHEMA: testdb ROWS_AFFECTED: 0ROWS_SENT: 10ROWS_EXAMINED: 41
16、7278MySQL源码修改l在events_statements_history_long的基础上增加语句的访问来源CLIENT_USER和CLIENT_HOST 精确的度量CPU消耗RU_UTIME和RU_STIME精确的度量IO消耗LOGIC_READ和PHYSIC_READl将导出表数据的方式改为动态设置系统变量刷新数据文件开启PS后的性能影响混合读写Thread/QPS5.7.185.7.18(PS开启)PS开启后性能下降(%)1647760467912.03%3280401747507.03%641078109212114.55%12812794410662416.66%256138
17、58911361418.02%开启performance_schema后,随着QPS访问量的增加,对MySQL处理性能的影响逐渐增加。当QPS小于4万时(符合我们大部分的生产环境)开启PS带来的实际性能影响不大,约2%左右设计思路数据存储计算流式计算(实时)离线计算数据源MySQL数据采集采集服务采集数据中转发送转发服务订阅订阅本地数据库远程数据库读取数据可视化系统架构数据加载数据采集离线计算实时计算(本地存储)数据中转数据源MySQL数据库磁盘柜发送Pipeline集群(实时计算)GreenPlum集群(离线计算)订阅订阅并 行 文 件 加 载 服 务CopyGpfdist采 集 服 务采集
18、实时计算基于PostgreSQL的流式数据库COPY STREAM FROM FILE从文件写入流CONTINUOUS VIEW实时统计计算离线计算基于PostgreSQL的MPP数据仓库segment并发从gpfdist加载数据采集服务ps_outfilePer 3 Secondlocal diskFile 1File 2File 3File 4ps_mergefilePer 10 Secondps_monitorPer 5 Minuteps_uploadfilePer 120 SecondStorageMove fileMonitor& RecoverMonitor& RecoverMon
19、itor& RecoverFlush fileMerge file & compress fileRead file运行日志2019-04-04 16:59:08 Note *ps_monitor.sh(begin)*2019-04-04 16:59:08 Note process (ps_monitor.sh),has been running 3 times.2019-04-04 16:59:08 Note psoutpath dir /tmp/ps has used (3%)2019-04-04 16:59:08 Note remotepath dir /home/op1/share h
20、as used (73%)2019-04-04 16:59:08 Note set events_statements_history_long enabled. 2019-04-04 16:59:08 Note process (ps_outfile.sh) has been started.2019-04-04 16:59:08 Note performance_schema outfile ps_outfile process is starting,scan one time per (3) second,flush table size is (6000). 2019-04-04 1
21、6:59:08 Note set performance_schema.setup_instruments success.2019-04-04 16:59:08 Note process (ps_mergefile.sh),pid 15199 has been running for 64 seconds.2019-04-04 16:59:08 Note mysql version is 5.6.21-ctrip-log,mysql starttime is 2019-04-04 16:48:21.000000.2019-04-04 16:59:08 Note process (ps_upl
22、oadfile.sh),pid 15229 has been running for 64 seconds.2019-04-04 16:59:08 Note *ps_monitor.sh(end)*2019-04-04 17:12:46 Note outfile test_20190404_171246,size is 100002019-04-04 17:13:15 Note outfile test_20190404_171315,size is 100002019-04-04 17:13:18 Note outfile test_20190404_171318,size is 10000
23、2019-04-04 17:13:21 Note outfile test_20190404_171321,size is 100002019-04-04 17:13:24 Note outfile test_20190404_171324,size is 100002019-04-04 17:13:27 Note outfile test_20190404_171327,size is 100002019-04-04 17:13:43 Note outfile test_20190404_171343,size is 100002019-04-04 17:13:46 Note outfile
24、 test_20190404_171346,size is 100002019-04-04 17:13:59 Note outfile test_20190404_171359,size is 100002019-04-04 17:13:59 Note compress file test_20190404_171246.psmerge.tgz finish 2019-04-04 17:14:02 Note outfile test_20190404_171402,size is 100002019-04-04 17:14:05 Note outfile test_20190404_17140
25、5,size is 100002019-04-04 17:14:06 Note upload file /tmp/ps/mergefiles/test_20190404_171246.psmerge.tgz success.注意的问题l 超长SQL截断SQL_TEXT列/ DIGEST_TEXT列标准化SQL长度字节数 performance_schema_max_sql_text_length=1024 performance_schema_max_digest_length=1024l 导出SQL语句分隔符FIELDS TERMINATED BY |&*| LINES TERMINATED
26、 BY |&|踩过的坑l SQL执行时间TIMER_START、TIMER_END,单位皮秒( 10-12秒),相对MySQL服务启 动时间8字节 bigint unsigned, 0到1844674407370955161518446744073709551615*10e-13/(60*60*24)=213.5天一直增长,达到上限后,重新计算SQL开始执行时间(MySQL5.6)SELECTDATE_SUB(N OW(), INTERVAL (VARIABLE_VALUE - (18446744073709551615)*10e- 13)* (VARIABLE_VALUE div (1844
27、6744073709551615*10e- 13)- TIM ER_START*10e- 13) second) as START_TIM E,SQL_TEXT,DIGEST,DIGEST_TEXT,ROWS_AFFECTED,ROWS_SEN T,ROWS_EXAM IN EDFROM performance_schem a.events_st atements_hist ory_long JOIN information_schem a.global_st atusWHERE variable_nam e = UPTIM E limit 1 G数据加载服务Task WorkerSplit
28、2Input FilesSplit 1Split 0FetchFetchFetchMasterMonitor& RecoverMonitor& RecoverLoader WorkerLoader WorkerLoader WorkerLoader WorkerLoader WorkerLoader WorkerMap PhaseReduce PhaseLoad PhaseReducer WorkerMonitor & RecoverMonitor& RecoverCombinerSelectMax HeaptarPushPopEventEventEventEventEventEventMapper Worker tartarMapper Worker tartarMapper Worker tartarmessage queuekvkv服务配置四种类型workerl1个tasker,收集导入的文件信息,生成hash分配给mapperl5个mapper(每个mapper内有3个解压线程)拷贝解压文件,并将文件key-file键值传递给reducerl1个reducer,mapper的消费者生成优先队列,将高优先级的文件key-table传递给loaderl20个loader(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年郑州工业应用技术学院单招综合素质考试参考题库带答案解析
- 五小创新培训课件
- 初中英语安全课件
- 2026年上海立信会计金融学院高职单招职业适应性测试参考题库有答案解析
- 2026年南充文化旅游职业学院单招职业技能考试参考题库带答案解析
- 2026年跨境贸易合规实务测评含答案
- 2026年国企校园招聘面试基础答题规范专项练习题含答案
- 2026年天津交通职业学院单招综合素质笔试备考试题带答案解析
- 2026年检验机构资质年审题库含答案
- 2026年医学影像基础考点测试题附参考答案
- 行政部给公司员工培训
- 中考物理 题型06【电学实验题】押题必做15题
- 企业安全生产责任制评估与改进方案
- 昆仑神话叙事的百年学术史重构与跨学科研究
- (必刷)湖南专升本《基础护理学》考点精粹必做300题-含答案
- 隧道监测与数据采集技术方案
- 总经办办公室工作总结及计划
- 围堤水下抛石工程的施工技术方案与安全措施
- 2025-2030中国钢结构建筑在新能源设施建设中的应用前景报告
- 焊工安全培训考试题(附答案)
- 2025年直招军官面试题型及答案
评论
0/150
提交评论