一种数据库迁移场景下的应用性能检测方法及装置与流程

文档序号:37118976发布日期:2024-02-22 21:20阅读:15来源:国知局
一种数据库迁移场景下的应用性能检测方法及装置与流程

本发明涉及it,具体为一种数据库迁移场景下的应用性能检测方法及装置。


背景技术:

1、当一个应用的数据库由于服务器过保等原因,需要迁移到另外一台服务器时,往往需要进行性能测试和对比,以保证应用在新服务器上能应对相同的业务负载,继续稳定提供服务。

2、很多时候,搭建一套完整的测试应用,一来需要耗费大量时间,二来无法一比一模仿生产环境的真实负载和压力,无法很好地完成应用性能检测及对比的任务,当前业界没有一个有效快速的应用性能检测对比方案,一般会在目标环境1:1搭建一套完整的服务,但是往往会遇到业务流量无法模拟的情况,即测试环境的负载和压力不如生产环境或超过生产环境,缺乏真实性;另外一种做法就是将源库采集到的sql,不考虑业务特征和源库负载,简单地在目标库执行一次,并比较其执行效率,由于目标库环境和源库环境差异较大,导致比较结果严重失真。

3、为此,我们提出一种数据库迁移场景下的应用性能检测方法及装置,用以解决上述技术问题。


技术实现思路

1、(一)解决的技术问题

2、针对现有技术的不足,本发明提供了一种数据库迁移场景下的应用性能检测方法及装置,具备自动快速地完成应用性能检测和对比,提高迁移效率和稳定性等优点,解决了现有技术耗费时间久,无法很好地完成应用性能检测及对比任务的问题。

3、(二)技术方案

4、为实现上述自动快速地完成应用性能检测和对比,提高迁移效率和稳定性的目的,本发明提供如下技术方案:一种数据库迁移场景下的应用性能检测方法,包括以下步骤:

5、步骤一、采集应用sql,并记录应用sql的执行效率、执行频次和执行顺序;

6、步骤二、根据sql特征,定义应用核心sql的范围,去除无关的sql;

7、步骤三、采集源库的负载信息和配置信息;

8、步骤四、基于步骤三采集到的信息,利用程序在目标库模拟负载和压力;

9、步骤五、基于步骤四存在负载和压力的目标库环境,按照业务逻辑回放应用业务。

10、优选的,所述步骤一中sql为一种关系型数据库管理系统语言,用于管理和操作关系型数据库中的数据,包括查询、插入、更新和删除数据,具体步骤如下:

11、a1、使用数据库软件自带的分析工具捕获应用程序所执行的sql语句,以及执行时间、cpu和内存占用的性能指标,找到执行效率低下的sql语句并对其进行优化;

12、a2、根据需求,配置采集日志的级别,设置采集sql语句的过滤规则;

13、a3、采集效率指标需要记录每条sql语句的执行时间性能指标;

14、a4、采集sql执行频次需要记录每条sql语句在一段时间内被执行的次数,使用数据库系统提供的审计工具将日志记录到本地磁盘中进行分析和优化;

15、a5、记录每条sql语句在应用程序中的执行顺序,在数据库代理环节进行拦截并记录。

16、优选的,所述a2步骤中配置采集日志的级别为操作、调试和详细级别。

17、优选的,所述a2步骤还包括配置执行效率、执行频次和执行顺序的指标采集方式。

18、优选的,所述步骤二包括以下步骤:

19、b1、基于所述步骤一,对收集到的sql进行分类,根据sql执行计划、i/o操作、索引使用和锁等待指标,将sql分为核心sql和无关sql,同时分析核心sql的特征;

20、b2、根据核心sql的特征,确定sql的范围,如果符合核心sql的特征,则将其归类到核心sql集合中,否则将其归类到无关sql集合中;

21、b3、将分类为无关sql的sql语句从集合中删除,并根据应用程序特点,设定是否保留一些偶发或低频的sql;

22、b4、将分类后的结果记录到数据库中,并定期更新这个记录,去除不再使用的无关sql。

23、优选的,所述步骤三中采用数据库代理工具在查询路由过程中拦截和记录请求,从而获取源库的负载信息和配置信息,所述数据库代理工具为一种中间层软件,用于在应用程序与数据库之间进行代理和转发请求,实现负载均衡、高可用性、故障转移、查询优化和安全性功能。

24、优选的,所述步骤四包括以下步骤:

25、c1、确保目标库已正常安装并配置完成,确认目标库的硬件资源满足负载测试的需求;

26、c2、根据步骤三的步骤,实现采集源库的负载信息和配置信息;

27、c3、根据负载测试场景的需求,编写程序生成模拟数据集,生成的数据符合目标库的表结构和数据类型要求;

28、c4、根据负载测试场景的需求,编写程序来模拟实际应用场景下的负载行为,使用相应的编程语言和数据库连接库;

29、c5、设置并发连接池和线程池,以实现模拟负载测试需要的并发请求,并根据目标库的性能和硬件资源情况,调整并发连接数和线程池大小;

30、c6、运行负载生成程序,模拟实际负载场景,并生成相应的负载和压力,记录测试过程中的性能指标,并监控目标库的响应时间、吞吐量和并发连接数;

31、c7、根据测试执行期间收集的性能指标和监控数据,进行性能分析,评估目标库在负载和压力条件下的表现,识别潜在的性能瓶颈和优化点;

32、c8、根据性能分析结果,优化目标库的配置、索引和查询语句方面,以改善性能,进行迭代测试,并根据测试结果调整优化策略。

33、优选的,所述c8步骤中迭代测试包括以下步骤:

34、d1、在进行迭代测试之前,需要准备和规划测试的内容和目标,包括明确每个测试迭代的测试目标、测试场景和负载大小;

35、d2、执行第一轮测试,根据测试计划和测试目标,选择相应的场景和负载大小,进行测试和性能分析,记录测试结果并分析得出结论;

36、d3、根据第一轮测试的分析结果,评估目标库的性能和潜在问题,并提出优化和改进建议;

37、d4、根据评估和优化结果,应用改进方案;

38、d5、修改和改进完成后,执行下一轮测试,选择不同的场景和负载大小,包括之前的场景,模拟正常、高压力和极限的使用场景,记录测试结果并分析得出结论;

39、d6、通过持续的测试和评估,优化和改进目标库的性能和稳定性,直到达到预期的性能和负载要求。

40、优选的,所述步骤五包括以下步骤:

41、e1、确保目标库环境已经配置完成,并且符合预期的负载和压力要求,根据负载测试的结果和性能需求,对目标库进行必要的优化和配置调整;

42、e2、采集和记录原始的业务逻辑,获取业务操作的信息和参数;

43、e3、根据采集的业务逻辑,编写业务逻辑回放程序,并按照之前记录的业务逻辑进行回放;

44、e4、在业务逻辑回放程序中,设定负载和压力条件;

45、e5、运行业务逻辑回放程序,模拟用户的业务操作,确保业务逻辑按照预期顺序执行,并在每个步骤中验证操作的正确性;

46、e6、在业务逻辑回放过程中,持续监控目标库的性能指标,用于评估目标库在负载和压力条件下的表现;

47、e7、根据业务逻辑回放的结果,与原始的业务逻辑进行对比和验证,确保回放后的数据和操作与实际业务中的预期相符;

48、e8、根据业务逻辑回放的结果和性能指标,分析目标库在负载和压力下存在的性能瓶颈和问题,并根据需要进行优化和调整,以改善目标库的性能和稳定性;

49、e9、根据业务需求和目标库的变化,在改善和优化之后,再次执行业务逻辑回放,通过持续的测试、分析和优化,不断提升目标库在负载和压力条件下的性能和稳定性。

50、一种数据库迁移场景下的应用性能检测装置,其特征在于:包括:

51、数据库性能监控组件:用于实时监控目标数据库的性能指标;

52、数据库负载生成组件:用于模拟实际应用场景下的负载行为,配合数据库性能监控组件,产生逼近实际应用负载的测试数据;

53、应用性能分析组件:用于分析目标数据库在不同负载条件下的性能表现,根据性能测试结果,提出优化建议和策略;

54、自适应性能调整组件:用于根据监控数据,自动调整目标数据库的参数和配置,以获得更好的性能、稳定性或多线程能力;

55、可视化性能展示组件:用于提供直观的性能数据展现和监控,方便查看性能情况、预测性能趋势和判断是否需要优化和调整。

56、与现有技术相比,本发明提供了一种数据库迁移场景下的应用性能检测方法及装置,具备以下有益效果:

57、1、本发明相比于仅仅通过比较新旧环境的执行计划得出应用性能差异,本方法综合考虑了数据库负载压力,参数配置,sql执行顺序和频次对sql执行效率和应用性能的影响,从多维度对源库负载进行模拟,并基于模拟负载进行业务核心sql回放,从而提高应用性能检测的真实性和对比的有效性。

58、2、本发明对核心业务sql进行定义,利用程序识别应用sql的范围。本发明提取sql语句的特征信息,并根据特征信息,利用预先建立的筛选模型从sql语句中筛选出包含设定内容的核心sql语句。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1