业务系统核心模块资料访问性能优化实战

随着业务系统的云化转型不断推进,业务量呈现显著增长,对业务系统的性能和资源管理提出了更高要求。在这样的背景下,实现系统资源使用与性能指标的均衡成为保障生产系统高效稳定运行的核心任务。

在性能优化的范畴内,核心业务系统对于用户信息查询的处理能力需具备高度性能及精确性,这部分优化向来都是最具挑战性的任务。普通的缓存机制往往无法满足这些严格的需求。因此,我们采取了分布式内存数据库,即高级缓存策略,于应用客户端构建起高效且精确的本地缓存机制,以应对这一难题。然而,随着用户数量及数据量的持续增长,高速缓存对内存资源的消耗也在持续扩大。如何在内存占用与业务性能之间达成有效的平衡,成为系统后续演进及效能提升的关键所在。

为解决相关问题,浩鲸科技提出了一种创新的性能优化策略。该策略主要涉及对系统内各模块中相同维度数据查询频率的深入分析,以开发出高频数据缓存技术,目标是减少批量话单处理中的重复数据查询效率问题,实现无干扰的高精度数据缓存复用。

在某省的云迁移项目实际对账操作中,这项技术与高速缓存技术相融合,成功实现了性能的整体提升,范围在2.4至7倍之间,同时显著减少了应用服务器的内存占用,降低了约20%。最终,实现了超过23万的话单处理端到端性能提升,以及部分模块40万+的处理性能巨幅增长。

某省采用新方案后的业务系统性能优化效果

01 业务系统资料查询优化迫在眉睫

系统实现了应用与数据的解耦,极大地提升了系统的并发处理能力。然而,在某些关键业务场景中,数据访问的时延成为性能瓶颈,尤其是在批价、合账、提醒及账期应用等环节。这些业务对数据访问的速度要求极高,主要体现在以下几个方面:

为了应对这些挑战,采用高速缓存技术进行大规模用户资料的映射存储成为一种有效的策略。这不仅确保了数据的准确性,还提高了数据访问的本地响应速度。然而,随着用户资料量的持续增长,单个宿主机的内存占用也从200+GB上升到了400+GB。这种趋势表明,单靠高速缓存技术已难以满足现有需求。

因此,在高频查询、批量查询的业务场景下,如何在减少内存占用的同时,确保核心业务系统中用户资料的低时延查询,已成为优化业务系统性能的关键任务。这不仅是技术上的挑战,更是业务发展的必然要求。

02 业务系统资料访问场景分析

为了解决上述问题,我们对业务数据的访问特性进行了深入分析。在排除了涉及账期应用的全面遍历查询情况后,问题的核心集中在批量查询和高频率查询的场景上。

高频查询类业务性能瓶颈分析

在处理话单业务的场景中,高频查询指的是那些频繁需要进行数据检索的操作。在云计算的架构下,每次对数据的访问都会引起一定的网络性能损失。随着这种访问频率的增加,系统的整体性能将以指数方式递减。

某省话单压测数据访问与访问频率汇总

在实际操作中,以实例数据为核心的高频访问操作往往涉及对单个话单的访问超过6次,且频繁出现对相同数据的重复查询。通过深入的场景配置分析,我们追溯到这一现象的根源在于话单处理的内部属性与外部属性之间的显著差异。在处理话单的过程中,尤其是对于定价领域的参照值,常常需要结合外部属性进行操作。这些外部属性各自独立,互不干涉,也因此无法自动判断数据是否可以进行关联复用。

批量查询类业务性能瓶颈分析

批量查询的设计意图在于一次性通过远程交互获取多项数据,以此显著降低单条数据检索的等待时间。理论上,这种平均化的时间延迟不应对系统性能产生根本性的影响,即使不使用高速缓存。然而,实际的测试表现并未达到预期标准。

并发批量查询时万兆网上行带宽占满

监控数据显示,一旦部分表从高速缓存中移出,组网的万兆带宽会立即被占满。这表明,单从业务场景和监控数据进行分析已不足够,需要结合更细致的业务访问操作进行综合分析,并对每张表的访问频率和带宽资源占用进行量化。

为了细致分析业务实际访问的操作,团队迅速完善了业务数据访问接口的调用链埋点,实现了表级别的接口数据采集。同时,对访问维度进行了数据接口级别的埋点,特别关注了关键维度如销售品、用户和实例等。通过对163355条话单的测试分析,我们获得了以下关键数据:

某省话单压测数据访问与带宽关系汇总

通过数据分析,发现产品实例关系表的批量查询操作中,单次查询平均返回1083条记录,每条数据的网络开销极小。然而,在12万TPS的负载下,这种操作将达到万兆带宽的上限,这与监控验证的结论相符。

资料访问场景分析总结

综上所述,对业务系统资料访问中的性能损耗就能做到有的放矢:

对于涉及高频重复查询的表。使用高速缓存方案存储会占用几百GB的内存,而全集数据使用并不频繁,导致大量内存均存在冗余浪费。因此,需要重新设计更合理的缓存策略。

对于涉及批量查询的产品实例关系表。业务会在短期内扫描大量数据,导致万兆网带宽立即占满,而产生影响的表仅为产品实例关系表。因此,需要考虑采用高速缓存并只对单表进行缓存支持。

通过这种分治策略,我们可以针对性地解决复杂问题,选择适当的场景应用高速缓存,并对高频重复数据查询的场景进行优化,从而实现业务系统全流程的性能提升。

03 在业务系统资料访问流程优化中有的放矢

高频查询类业务优化:高频资料缓存技术

当前面对的主要问题是优化处理高频重复访问的表操作,实现减少内存开销的前提下,完成业务性能的优化提升。

首先,在该特征下,存储在高速缓存中的大部分数据都非热频数据,导致缓存资源利用率不高。因此,需要将对应场景的数据从高速缓存中移出,从而节约大量内存资源,确保应用系统的资源充足。

其次,将这些重复访问的表按维度进行划分,区分出存在重复数据查询的场景,考虑在重复数据访问的过程中降低性能损耗。

最后,还要考虑对复杂业务系统的稳定性、准确性的影响,如何提升技术方案的可控性也是重中之重。

综上所述,对技术方案提出了如下四点要求:

为了实现上述特征,团队结合现状给出了一种高频资料缓存技术,在不依赖任何第三方组件的基础上,对数据访问层(DAO)进行了有效地优化,具体方案如下:

方案结合当前业务现状和产品特性,在DAO层采取了一系列先进的缓存管理策略,确保数据处理的优化与资源的最大化利用:

零侵入的方案实践效果:得益于业务系统架构的高可扩展性及先进性,高频资料缓存方案在DAO层就能完成维度数据缓存,对业务流程完全零侵入。

高准确的缓存留存机制:数据在DAO层按指定维度进行缓存,对相同维度的个性化SQL进行动态拆分处理,实现了单次缓存匹配多个数据接口的效果。应用在处理完指定批次话单数据后,还会及时销毁缓存中的数据,确保数据的准确有效。

精细化的数据缓存策略:业务系统应用针对每个批次的话单数据,特别是那些需要频繁访问且数据量较大的数据,执行专门的缓存策略。这些数据按红黑树进行存储,被缓存到定制的私有内存中,从而显著减少了系统与外部任何数据源的交互频率和相关开销。这不仅提高了数据处理的响应速度,也优化了系统资源的使用,单进程开销低于20MB。

通过这些策略的实施,业务系统不仅提高了处理效率,还确保了数据的安全性和准确性,为生产业务提供了更加可靠和高效的服务。

批量访问类业务优化:高速缓存单表适配

在特定的批量访问情境中,可能会出现带宽资源被过度消耗的情况,其根本原因在于一次性检索返回的数据量过大。鉴于该省的产品实例关联表数据不超过3亿条,预计内存消耗约为20GB。因此,我们建议采用高速缓存结合单表支持的策略,以此来显著降低带宽使用,缓解服务器负荷,同时确保数据访问的高效性和精确性。

04

系统优化成效

随着业务范围的持续扩展,业务系统正遭遇日益增长的性能压力。为了解决这些挑战并提高系统效率,我们的团队采取了一系列创新技术策略,特别是对高频数据缓存的优化工作:

☑️ 我们成功地整合了高速缓存技术与业务系统的缓存策略,从而对业务系统的数据查询性能进行了深度优化。这一改进显著加快了数据处理速度,缩短了系统响应时间,同时显著降低了网络带宽的负荷,有效释放了冗余的内存资源。

☑️ 此外,这些措施还显著增强了系统的可扩展性和可靠性,使其能够应对未来业务的快速扩展和增长。这些优化确保了业务系统能够持续提供高效、便捷且稳定的服务,满足当前需求,也为未来可能的变化和技术升级奠定了坚实基础。

☑️ 至关重要的是,这次的系统优化为后续的业务系统模块性能提升提供了宝贵的经验和指导方向。通过不断的技术创新和优化,业务系统将更好地适应业务需求,同时也能提供更广泛的支持和价值创造。

总之,本次优化提升了业务系统的性能和稳定性,也为应对未来的挑战和利用新机遇做好了充分准备,确保业务系统能够在动态的市场环境中实现持续的高质量发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/379636.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无线物联网新时代,RFID拣货标签跟随潮流

拣选技术的演变历程,本质上是从人力操作向自动化、智能化转型的持续进程。近期,“货寻人”技术成为众多企业热烈追捧的对象,它可以根据企业的特定需求,从众多拣选方案中选出最优解。那么,在采用“货到人”拣选技术时&a…

服务器基础1

服务器基础复习01 1.环境部署 系统:华为欧拉系统 网络简单配置nmtui 因为华为欧拉系统密码需要复杂度 所以我们可以进入后更改密码 echo 123 | passwd --stdin root也可以 echo "root:123" | chpasswd2.关闭防火墙,禁用SElinux 首先先关…

开源防病毒工具--ClamAV

产品文档:简介 - ClamAV 文档 开源地址:Cisco-Talos/clamav:ClamAV - 文档在这里:https://docs.clamav.net (github.com) 一、引言 ClamAV(Clam AntiVirus)是一个开源的防病毒工具,广泛应用…

222.买卖股票的最佳时机(力扣)

代码解决 class Solution { public:int maxProfit(vector<int>& prices) {// 初始化最小买入价为第一个价格int min1 prices[0];// 初始化最大利润为0int max1 0;// 从第二天开始遍历价格数组for (int i 1; i < prices.size(); i) {// 计算当前价卖出的利润&a…

圣诺联合加入龙蜥社区,共筑数据安全长城

近日&#xff0c;河北圣诺联合科技有限公司&#xff08;以下简称“圣诺联合”&#xff09;签署了 CLA&#xff08;Contributor License Agreement&#xff0c;贡献者许可协议&#xff09;&#xff0c;正式加入龙蜥社区&#xff08;OpenAnolis&#xff09;。 圣诺联合成立于 20…

jvm常用密令、jvm性能优化、jvm性能检测、Java jstat密令使用、Java自带工具、Java jmap使用

1.jps是Java虚拟机的进程状态工具&#xff0c;用于列出正在运行的Java进程 jps命令的使用&#xff1a;cmd打开直接jps 1.1不带参数&#xff1a; jps 默认情况下&#xff0c;列出所有正在运行的 Java 进程的进程 ID 和主类名。 1.2 -l&#xff1a;显示完整的主类名或 JAR 文件…

nacos 适配瀚高数据库、ARM 架构

下载nacos源码&#xff1a; https://github.com/alibaba/nacos/tree/2.3.1 瀚高技术文档 1、修改pom.xml 根目录nacos-all > pom.xml<dependencyManagement><dependency><groupId>com.highgo</groupId><artifactId>HgdbJdbc</artifactI…

免费的数字孪生平台助力产业创新,让新质生产力概念有据可依

关于新质生产力的概念&#xff0c;在如今传统企业现代化发展中被反复提及。 那到底什么是新质生产力&#xff1f;它与哪些行业存在联系&#xff0c;我们又该使用什么工具来加快新质生产力的发展呢&#xff1f;今天我将介绍一款为发展新质生产力而量身定做的数字孪生工具。 新…

0718,TCP协议,三次握手,四次挥手

目录 上课喵&#xff1a; TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;的状态迁移图 TCP连接的状态迁移图 状态迁移说明&#xff1a; 注意&#xff1a; big_htonl.c 字节序转换 addr.c IP地址的转换 作业喵&#xff1a; …

人工智能与算力:推动各行业变革的关键力量

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;算力需求也在不断增加。算力&#xff0c;即计算能力&#xff0c;已经成为数字经济时代的核心资源之一。从科学研究到制造业&#xff0c;从医疗健康到教育&#xff0c;各行各业都在通过提升算力来推动自身的数…

基于springboot新生宿舍管理系统

系统背景 在当今高等教育日益普及的时代背景下&#xff0c;高校作为知识传播与创新的重要基地&#xff0c;其基础设施的智能化管理显得尤为重要。新生宿舍作为大学生活的起点&#xff0c;不仅是学生日常生活与学习的重要场所&#xff0c;也是培养学生独立生活能力和团队合作精神…

专题四:设计模式总览

前面三篇我们通过从一些零散的例子&#xff0c;和简单应用来模糊的感受了下设计模式在编程中的智慧&#xff0c;从现在开始正式进入设计模式介绍&#xff0c;本篇将从设计模式的7大原则、设计模式的三大类型、与23种设计模式的进行总结&#xff0c;和描述具体意义。 设计模式体…

Stateflow中的状态转换表

状态转换表是表达顺序模态逻辑的另一种方式。不要在Stateflow图表中以图形方式绘制状态和转换&#xff0c;而是使用状态转换表以表格格式表示模态逻辑。 使用状态转换表的好处包括&#xff1a; 易于对类列车状态机进行建模&#xff0c;其中模态逻辑涉及从一个状态到其邻居的转换…

【46 Pandas+Pyecharts | 当当网畅销图书榜单数据分析可视化】

文章目录 &#x1f3f3;️‍&#x1f308; 1. 导入模块&#x1f3f3;️‍&#x1f308; 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 去除重复数据2.4 书名处理2.5 提取年份 &#x1f3f3;️‍&#x1f308; 3. Pyecharts数据可视化3.1 作者图书数量分布3.2 图书出版年份…

易飞未生成发票单据查询

易飞本身带有未开票查询作业&#xff0c;财务开票收票一般都不是立即开票&#xff0c;月结90&#xff0c;60&#xff0c;30天常常有&#xff0c;且当公司财务状况好时候是这样&#xff0c;如果购销双方出点状况都会推迟&#xff0c;应收应付会计一般暂估会次月完成&#xff0c;…

Qt 制作安装包

记录使用Qt工具制作一个安装包的过程 目录 1.准备工作 1.1检查Qt Installer Frameworks是否安装 1.2.安装Qt Installer Frameworks 1.3准备release出来的exe dll等文件 2.创建打包工程所需要的文件及目录 2.1创建子目录 2.2 创建工程文件 2.3 创建config/config.xml …

剧本杀小程序搭建,为商家带来新的收益方向

近几年&#xff0c;剧本杀游戏成为了游戏市场的一匹黑马&#xff0c;受到了不少年轻玩家的欢迎。随着信息技术的快速发展&#xff0c;传统的剧本杀门店已经无法满足游戏玩家日益增长的需求&#xff0c;因此&#xff0c;剧本杀市场开始向线上模式发展&#xff0c;实现行业数字化…

linux centos limits.conf 修改错误,无法登陆问题修复 centos7.9

一、问题描述 由于修改/etc/security/limits.conf这个文件中的值不当&#xff0c;重启后会导致其账户无法远程登录&#xff0c;本机登录。 如改成这样《错误示范》&#xff1a; 会出现&#xff1a; 二、解决 现在知道是由于修改limits.conf文件不当造成的&#xff0c;那么就…

Docker搭建Harbor

1.什么是Harbor Harbor 是 vMware 公司开源的企业级 Docker 〖egistry 项日&#xff0c;其日标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础&#xff0c;提供了图形管理UI 、基于角色的访问控制(Role Based Accesscontr…

virtuoso:Schematic Editor创建global net

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 模块的电源地在top层写网表的时候没写出来&#xff0c;重新导入一遍网表转schematic太耗时间&#xff0c;可以在schematic的模块层出pg pin的位置创建global的pg net。 方法如…