我们在新方案中采用了什么办法优化了内存和 CPU 占用

作者:郑德鼎 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Basis, CO, Cloud Architecture, Data Engineering, FI, SD, Software Engineering, WM, 云架构, 仓库管理, 开发, 数据工程, 系统管理, 财务, 软件工程, 销售分销
我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图
我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图
我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图
我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图

** 问 题 **

我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图
我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图

传统用户部署HZERO需要3套,即DEV、UAT和PROD,每套系统我们一般会要求至少32-64G的内存供数据库+业务系统+,如果用户使用自有服务器,需要准备192G的内存资源,如果用户使用阿里云腾讯云等云服务器,即使所有微服务,数据库和缓存服务都部署在同一台服务器上,也将花费3000多元人民币每月每台,3台的每年花费就需要112720.68元,有一些较小的企业就望而却步了。

但是DEV环境和UAT环境又不需要使用那么多的CPU资源,所以其实如果使用新方案运行,仅需300多元每月即可完成DEV和UAT环境的部署,加上业务服务器总共花费:45245.88元每年,节约67474.8元每年,使得许多中小企业也可以接受相关的服务器成本,吸引他们购买H0平台以及相关附加服务。

我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图
我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图
我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图
我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图

老方案占用(许多服务已经触发xmx的内存回收,实际如果放开了占用会更高得多)

我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图
我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图

新方案我们使用了一些特殊的手段,由于hzero的绝大多数服务都使用了共用的包,比如mybatis+springboot+springcloud+eureka客户端+数据库连接等,他们如果运行在同一个操作系统中,不同的JAVA进程会初始化相同的类,并且重复占用内存和CPU,新的方案通过某些特殊手段节约了这部分内存,在不损失性能的前提下,不仅加快了启动速度,还在较大程度上减少了内存的占用,如下表所示,新方案在不触发内存回收的前提下,总计节约了43.55%的内存,如果都放开XMX使程序加载所有必要的内存,节约率将高达70%+。

新方案占用(均为触发xmx的内存回收,保证低内存高性能)

我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图 服务名称 | 传统方案 RSS(MB) | 新方案 RSS(MB) | 节约内存 | 节约比例

---|---|---|---|---

hzero-gateway.jar | 1843 | 504 | 1339 | 72.65%

hzero-admin.jar | 1527 | 796 | 731 | 47.87%

hzero-platform.jar | 1909 | 1198 | 711 | 37.24%

hzero-oauth.jar | 975 | 585 | 390 | 40.00%

hzero-interface.jar | 1449 | 1267 | 182 | 12.56%

hzero-lowcode.jar | 1767 | 1119 | 648 | 36.67%

hzero-modeler.jar | 1975 | 1281 | 694 | 35.14%

hzero-file.jar | 1291 | 415 | 876 | 67.85%

hzero-iam-saas.jar | 1329 | 774 | 555 | 41.76%

总计 | 14065 | 7939 | 6126 | 43.55%

我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图
我们在新方案中采用了什么办法优化了内存和 CPU 占用 - 封面图

** 问题 **

我们在新方案中采用了什么办法优化了内存和CPU占用(多选题0-4个正确选项)

A.使用特殊的环境变量指向相同的共用jar包以此降低内存负担

B.通过调整JDK和POM文件指向共同依赖使后续运行时可以找到相同的文件

C.在运行时通过JRE参数调整实现共用内存

D.使用了经过优化后的JVM

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「我们在新方案中采用了什么办法优化了内存和CPU占用.md」整理生成,仅用于内部技术分享与学习交流。