国产分布式数据库——TDSQL性能分析工具

一、TDSQL概述

TDSQL是腾讯研发的一款兼容MySQL协议的国产分布式数据库,适用于大并发、高性能、大容量的OLTP类场景。TDSQL分为集中式和分布式版本,分布式版可支持分布式事务,但性能不如单机事务,性能会有一定的损耗,如需使用,需要进行实际测试结果来决定是否使用。

国产分布式数据库——TDSQL性能分析工具_第1张图片

二、TDSQL性能监控分析工具

1.赤兔平台

赤兔平台中通过DB监控、实例监控和SQLEngine监控可以查看查看数据库及网关的监控指标,通过日志管理查看慢查询和SQL Engine日志,同时还可以通过性能分析报告(实例管理-》“点击实例ID进入”-》性能分析)查看系统状态、表空间分布、冗余索引、死锁诊断、锁等待诊断、慢查询分析、DB状态检查等信息。

(1)慢查询

慢查询诊断通过TDSQL的监控库汇总set中主备慢查询的分析结果,并对每个摘要对应的样例SQL生成的索引建议作为该类SQL的建议。点击实例管理-实例ID-日志查询-慢查询,查看DB是否有慢查询SQL。如果有慢查询,可以点击SQL分析可以查看修改建议和SQL的查询计划。

(2)SQL Engine慢查询

SQL Engine慢查询与慢查询相比,增加了sql在SQL Engine的执行时间。如没有慢查询,可以查看是否有SQL Engine慢查询,如不存在慢查询,仅存在porxy慢查询,可考虑对porxy服务器扩容。

(3)死锁或锁等待

通过实例管理-实例ID-性能分析-实时诊断,可查看数据库是否存死锁。通过实例管理-实例ID-性能分析-实时诊断,可查看数据库是否存在锁等待。

(5)冗余索引

冗余索引意味着update/insert/delete需要更新不必要的索引,带来潜在的性能影响。通过实例管理-实例ID-性能分析-实时诊断,可查看数据是否存在冗余索引。

(6)会话检查

通过性能分析-会话检查可以查看数据库的所有会话。也可通过异常会话菜单可以查看实时会话和异常会话。

2.APM监控工具

通过APM工具和全链路监控工具中交易的堆栈信息可以查看sql语句的执行时长,进而发现执行慢的SQL语句。

3.DBbrain

DBbrain为腾讯新开发的TDSQL性能分析工具,可以实现从业务SQL到DB SQL双向追踪,还可以对死锁、等待行锁等多个锁冲突场景进行异常诊断,还可以对慢查询进行分析并给出优化建议。

三、性能问题排查思路

1.检查运行状态

登录赤兔,通过DB监控和SET管理均可以查看TDSQL各节点的运行情况。此外,也可以登录TDSQL服务器,通过PS-ef|grep tdsql_run查看TDSQL进程是否存在。

2.检查配置参数

(1)查看数据库参数

登录赤兔,通过实例管理-数据库管理-数据库参数,可以参看数据库配置参数,重点关注最大连接数的设置。

(2)查看数据库连接串参数

登录POD的控制台,在/soft/tomcat/conf目录下查看context.xml

文件,可以看到数据库连接串配置的参数。连接串参数可以重点关注serverTimezone、rewriteBatchedStatements、netTimeoutForStreamingResults、allowMultiQueries等参数。

3.借助监控工具查看异常

通过赤兔及DBbrain可以查看慢查询、SQL Engine慢查询、死锁等监控项,并查看SQL优化建议,此外,通过APM和全链路监控工具也可以查看响应时间慢的SQL语句。

4.检查Engine日志

TDSQL SQL Engine日志文件分为接口日志文件(interf_instance_xxx)、SQL日志文件(SQL_instance_xxxx)和慢查询日志文件(slow_SQL_instance_xxxx)。接口日志文件接口日志主要存储了由客户端传输给服务器的原始SQL信息,包括客户端,后端服务器、新建连接的数量、新建连接的花费的时间、查询得到的结果集总量、操作影响的行数等;SQL日志文件记录了在set中具体执行的SQL信息;慢查询日志慢查询日志主要存储了ddl语句及响应时间超过1s的dml语句。

5.关注数据分布情况

对于批量程序,应关注各节点的处理的数据量差异,尽可能使各节点的数据量保持均匀,避免因各节点数据量差异影响批量程序的执行时长。此外,批量提交的size可以在性能测试中进行调整,从而找对批量执行效率最高的size设置值。

最后:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

你可能感兴趣的:(microsoft,数据库,java,python,软件测试,测试工具,安全性测试)