• 查询稿件
  • 获取最新论文
  • 知晓行业信息
官方微信 欢迎关注

云平台的负载预测及弹性伸缩方案研究

刘佳, 王冰, 王琛, 刘振博

刘佳, 王冰, 王琛, 刘振博. 云平台的负载预测及弹性伸缩方案研究[J]. 铁路计算机应用, 2024, 33(2): 63-66. DOI: 10.3969/j.issn.1005-8451.2024.02.12
引用本文: 刘佳, 王冰, 王琛, 刘振博. 云平台的负载预测及弹性伸缩方案研究[J]. 铁路计算机应用, 2024, 33(2): 63-66. DOI: 10.3969/j.issn.1005-8451.2024.02.12
LIU Jia, WANG Bing, WANG Chen, LIU Zhenbo. Load prediction and elastic scaling solutions for cloud platforms[J]. Railway Computer Application, 2024, 33(2): 63-66. DOI: 10.3969/j.issn.1005-8451.2024.02.12
Citation: LIU Jia, WANG Bing, WANG Chen, LIU Zhenbo. Load prediction and elastic scaling solutions for cloud platforms[J]. Railway Computer Application, 2024, 33(2): 63-66. DOI: 10.3969/j.issn.1005-8451.2024.02.12

云平台的负载预测及弹性伸缩方案研究

基金项目: 中国国家铁路集团有限公司科技研究开发计划课题(P2021W009)
详细信息
    作者简介:

    刘 佳,工程师

    王 冰,高级工程师

  • 中图分类号: U29 : TP39

Load prediction and elastic scaling solutions for cloud platforms

  • 摘要: 为提高云平台的性能和资源利用率,文章提出一种基于ARMA-CNN-SVR的负载预测组合模型,通过融合多种预测模型的优点,提高预测云平台资源使用情况的准确率。基于该负载预测组合模型,进一步优化了弹性伸缩策略,有效解决资源调整的滞后性问题,增强了云平台的主动性和智能性,显著提升了资源利用率和服务质量。
    Abstract: To improve the performance and resource utilization rate of cloud platforms, this paper proposed a load prediction combination model based on ARMA-CNN-SVR, improved the accuracy of predicting cloud platform resource usage by integrating the advantages of multiple prediction models. Based on this load forecasting combination model, the paper further optimized the elastic scaling strategy, effectively solved the lag problem of resource adjustment, enhanced the initiative and intelligence of the cloud platform, and significantly improved resource utilization rate and service quality.
  • 目前,建筑信息模型(BIM,Building Information Model)技术已广泛应用于建筑领域[1-2]

    轨道交通工程属于典型的复杂建设工程,BIM技术的应用可以提高其建设效率[3]。Revit是BIM建模软件,其功能强大,通常被用于设计轨道交通BIM。然而,轨道交通具有多专业、多用户的特点,各个专业相互查看模型需要通过拷贝模型文件并利用Revit链接功能打开。对于现场施工人员来说,他们可能不会使用Revit;对于设计人员来说,如果BIM文件发生变化,那么需要重新拷贝。因此,轨道交通BIM技术亟须解决在Web端的应用,才能使BIM在各个阶段都能被即时交互。

    针对BIM技术的Web端轻量化应用,Lee等人[4]证明了使用XML格式存储BIM数据的频率逐渐减少,取而代之的是用结构更紧凑的JSON格式文件存储,Afsaria等人[5]提出了将BIM数据用JSON格式文件表示的方法代替用XML格式文件表示的轻量化方案,然而未能完全实现BIM的Web端渲染,赵菲[6]研究了基于WebGL的古建筑BIM轻量化方法,但该方法把BIM数据都放在同一个JSON格式文件进行渲染。如果BIM数据量较大,那么WebGL是不能承受这种渲染带来的内存压力的。一般来说,轨道交通BIM数据量都较大,高喆[7]研究了基于工业基础类(IFC,Industry Foundation Classes)的模型轻量化方案,但是模型数据转化过程太过烦琐。张建平等人[8]证明了BIM的表面模型比实体模型更适合在Web端渲染。

    根据以上的分析可以得知,利用JSON格式文件存储BIM表面模型且将BIM分别存储于多个JSON格式文件,这是Web端渲染BIM的重要前提。因此,本文提出了基于WebGL的轨道交通BIM轻量化应用方案,解决了BIM在Web端渲染的问题。本文方案并未采用BIM建模—IFC格式文件存储—IFC格式文件解析—Web端渲染的传统方案,而是用JSON格式文件代替IFC格式文件作为中间辅助存储BIM数据的工具,采用BIM建模—JSON格式文件存储—Web端渲染的方案。在存储数据方面,与IFC格式文件相比,JSON格式文件具有独特优势。JSON格式文件拥有跨平台性,IFC格式文件则需要专业的解析软件进行解析。

    本文考虑了浏览器渲染大数据时内存压力大(这是因为渲染数据量大时浏览器占用的内存会急剧提高)的问题,采取以构件为单位,分别存储为JSON格式文件的方式,保存BIM的原始数据。

    轨道交通BIM在Web端渲染是支持模型即时交互的重要条件。本文的目标是通过Web端来构建BIM,将Revit的C/S架构变为B/S架构,以辅助轨道交通施工人员和设计人员之间的交互。

    本文的研究重点有3个,具体如下。

    (1)BIM轻量化:又称为表面模型提取。提取BIM的表面模型后,需要将其数据存储为JSON格式文件。

    (2)设计合适的存储方式:由于轨道交通BIM由多个构件组成,若将全部构件的数据存储到同一个JSON格式文件,那么,当进行WebGL渲染时,浏览器会发生内存溢出的情况。因此,BIM应该以单个构件为单位,分开存储BIM构件数据。

    (3)WebGL渲染:从文件服务器中选择待渲染的JSON格式文件,提取模型数据,在Web端完成渲染。

    BIM表面模型通过Web端进行渲染的过程如图1所示。

    图  1  BIM表面模型在Web端的渲染过程

    BIM的RVT格式文件不可以直接在Web端进行渲染[9],因此,需要转换为Web端识别的格式文件。JSON格式文件数据结构是键值对形式,这使其具有跨平台的优势。由于Web端对三角形的渲染速度非常快,BIM表面模型提取的重点是如何将表面模型转化为三角形进行提取。这个问题可以通过Revit二次开发功能来解决,即在Revit二次开发中,通过Mesh类函数对BIM表面模型进行三角形面片化,从而形成三角形网格;然后通过MeshTriangle类的函数get_Vertex()得到三角形面片的顶点。BIM表面模型三角形面片化后的JSON格式文件的数据结构如图2所示。

    顶点集和顶点索引集表示每一个三角形面片在Web端渲染时的位置。法线集和法线索引集表示每一个三角形面片进行Web端渲染时的明暗程度。构件几何中心表示Web端渲染时相机的摆放位置。颜色、透明度等材质属性表示Web端渲染BIM的外观。唯一编号表示构件的编码,Web端以此为依据提取构件信息。

    图  2  JSON格式文件的数据结构

    在轨道交通中常见的车站模型具有构件多、模型大的特点,因而,本文先将BIM构件模型的所有Soild实体所对应的JSON格式文件合并为一个JSON格式文件,其中,一个BIM构件有多个Soild实体,每个Soild实体可以提取相应的表面模型;再将每个构件模型的JSON格式文件分开存储。这种处理方式需要文件服务器支持文件数量多、单个文件小的存储形式。为此,本文对几种常用文件服务器的性能进行了对比[10-12],对比结果如表1所示。可以发现,FastDFS更适合作为本文方案的文件服务器,实现JSON格式文件的存储及管理。

    表  1  常见文件服务器性能对比
    文件服务器性能
    HDFS支持大文件存储,不适合小文件存储
    GlusterFS支持多种数据类型,较适合大文件存储
    mogileFS支持多节点冗余,支持自动复制文件
    FastDFS支持多种数据类型,适用于海量小文件模式
    下载: 导出CSV 
    | 显示表格

    WebGL由许多JavaScript的应用程序接口(API,Application Programming Interface)集合构成[13]。随着技术的发展,Web段渲染框架在WebGL基础上又封装了JavaScript 3D引擎,这推进了Web端可视化的发展。本文采用JavaScript 3D引擎Three.js作为Web端渲染框架,这是因为Three.js具有开源、说明文档丰富、不需要特定物理引擎、可以导入外部3D模型等优点,能够满足本文方案的要求。

    构件数据存储示例如图3所示,字段名和JSON格式文件数据结构的对应关系如表2所示。

    图  3  构件数据存储示例
    表  2  JSON示例与JSON格式文件对应关系
    JSON示例字段JSON格式文件对应字段
    VertexCoords顶点集
    VertexIndices顶点索引集
    Normals法线集
    NormalsIndices法线索引集
    Center构件几何中心
    Transparency、Color材质
    ID唯一编号
    下载: 导出CSV 
    | 显示表格

    JSON格式文件完成存储后,可通过Three.js进行渲染。在实际渲染中,构件数据存在一个顶点同时属于多个面的情况,如图4所示。在图4中,顶点V7同时属于面F1F2F3F4F6,那么会被重复存储4次。一般情况下,每一个顶点会同时属于3~4个面。因此,在已经有VertexCoords的情况下,本文增加了VertexIndices来辅助存储表面模型信息。这种“VertexCoords+VertexIndices”的复合存储方式比单独使用VertexCoords能节约60%以上的存储空间。

    图  4  常见的三角形面片分布

    Three.js对三角形面片JSON格式文件的渲染流程如图5所示,具体步骤如下。

    图  5  Three.js对三角形面片JSON格式文件渲染流程

    (1)查找VertexIndices集合中的索引值。3个索引值为一组,每一个索引值对应VertexCoords中的一个顶点;将3个顶点首尾相连,形成一个三角形面片。以此类推,获得所有三角形面片,还原表面模型。

    (2)得到表面模型后,查找三角形面片的法线集。法线集的查找方式和顶点一样。

    (3)计算构件几何中心,获得相机初始摆放位置。构件几何中心为Solid实体的Center位置平均值,计算式为${{X}} = (1/N)\cdot \displaystyle\sum\limits_{i = 1}^N {{\rm{Center}}_i}$,其中,Centeri表示Solid实体的中心点位置,N表示Solid实体的个数,X表示Center位置平均值。

    (4)渲染颜色、透明度等材质信息,以使渲染出来的模型和Revit的BIM保持一致。颜色、透明度等材质信息是从BIM的材质信息中提取出来的。

    (5)用对象类表示三角形面片顶点、三角形面片法线集、颜色、透明度、唯一编号等信息,完成BIM构件的渲染。

    (6)重复上述步骤,直至完成整个BIM的渲染。

    在实际的渲染过程中,为了减小浏览器的渲染压力,本文采取分级渲染的策略:a.渲染建筑结构专业BIM构件,以便快速得到直观的视觉呈现效果;b.渲染暖通、给排水、供电、通风等专业BIM构件;c.合成,实现BIM的渲染。

    本文首先提取BIM表面模型,并存储为JSON格式文件;再通过Revit二次开发功能完成BIM构件。插件(部分专业)如图6所示,其中,图6(a)为土建结构专业,图6(b)为给排水专业。在上传的时候,需要在文本框中给出所上传模型的专业和所属项目,以便后期数据库查找数据。

    图  6  格式转化插件

    存储阶段:完成插件后,可以将整个BIM对应的多个JSON格式文件一键上传到FastDFS文件服务器中。

    Three.js首先渲染建筑结构专业BIM表面模型,如图7所示。这种方式能够快速地呈现BIM外观,减少渲染等待时间。待渲染这些专业完成后,使用人员可以选择继续渲染如图8所示的给排水专业等BIM构件。这些构件可以同时在Web端进行渲染,也可以分别进行渲染。

    图  7  建筑结构专业BIM构件
    图  8  给排水专业BIM构件

    本文主要使用JSON格式文件表示轨道交通BIM对应的表面信息、使用FastDFS存储管理BIM对应的大量JSON格式文件、使用Three.js渲染这些JSON格式文件,实现了轨道交通各专业BIM Web端的渲染。该应用不仅完全脱离了IFC格式文件,还使Web端渲染大模型时内存压力变小。通过查找大量文献发现:FastDFS在读入/读出文件时是可以提升效率的,例如,使用Redis缓存机制建立文件名和全局索引的键值对,以及使用数据预取机制等方法,可以加快FastDFS文件服务器的工作效率。这是本文的下一步工作重点。

  • 表  1   测试用例表

    时间点 负载需求 时间点 负载需求
    08:00 100 20:00 100
    09:00 120 21:00 90
    10:00 130 22:00 80
    11:00 110 23:00 70
    12:00 150 00:00 50
    13:00 180 01:00 40
    14:00 200 02:00 30
    15:00 250 03:00 20
    16:00 230 04:00 20
    17:00 190 05:00 30
    18:00 150 06:00 40
    19:00 120 07:00 60
    下载: 导出CSV

    表  2   负载预测模型预测结果

    时间点 负载
    需求
    ARMA模型 CNN模型 SVR模型 本文组合模型
    预测值 预测
    偏移量
    预测值 预测
    偏移量
    预测值 预测偏移量 预测值 预测
    偏移量
    08:00 100 100 0.0% 100 0.0% 100 0.0% 100 0.0%
    09:00 120 104 13.3% 100 16.7% 104 13.3% 105 12.5%
    10:00 130 110 15.4% 138 6.2% 92 29.2% 126 3.1%
    11:00 110 112 1.8% 139 26.4% 103 6.4% 103 6.4%
    12:00 150 122 18.7% 128 14.7% 104 30.7% 116 23.0%
    13:00 180 138 23.3% 186 3.3% 102 43.3% 158 12.5%
    14:00 200 154 23.0% 207 3.5% 127 36.5% 189 5.5%
    15:00 250 178 28.8% 218 12.8% 160 36.0% 210 16.0%
    16:00 230 202 12.2% 295 28.3% 157 31.7% 157 31.7%
    17:00 190 210 10.5% 248 30.5% 192 1.1% 192 1.1%
    18:00 150 204 36.0% 226 50.7% 168 12.0% 168 12.0%
    19:00 120 188 56.7% 186 55.0% 152 26.7% 143 18.8%
    20:00 100 158 58.0% 147 47.0% 131 31.0% 114 14.0%
    21:00 90 130 44.4% 118 31.1% 112 24.4% 95 5.6%
    22:00 80 108 35.0% 99 23.8% 99 23.8% 86 6.9%
    23:00 70 92 31.4% 89 27.1% 83 18.6% 76 8.6%
    00:00 50 78 56.0% 79 58.0% 69 38.0% 67 33.0%
    01:00 40 66 65.0% 68 70.0% 48 20.0% 48 18.8%
    02:00 30 54 80.0% 49 63.3% 45 50.0% 38 26.7%
    03:00 20 42 110.0% 39 95.0% 33 65.0% 29 42.5%
    04:00 20 32 60.0% 29 45.0% 23 15.0% 21 5.0%
    05:00 30 28 6.7% 20 33.3% 28 6.7% 28 6.7%
    06:00 40 28 30.0% 39 2.5% 19 52.5% 32 21.3%
    07:00 60 34 43.3% 49 18.3% 25 58.3% 42 30.0%
    下载: 导出CSV

    表  3   负载预测模型预测结果对比

    ARMA模型 CNN模型 SVR模型 本文组合模型
    平均偏移量 35.8% 31.8% 27.9% 15.1%
    下载: 导出CSV
  • [1] 李 涛. 云平台的资源监控与弹性伸缩技术研究与实现[D]. 北京:北京邮电大学,2016.
    [2] 曹 壮. 容器云环境下的负载预测与容器调度技术研究[D]. 西安电子科技大学,2022.
    [3] 胡陈慧. 基于负载预测和强化学习的容器弹性伸缩策略研究[D]. 杭州:杭州电子科技大学,2023.
    [4] 翁湦元,单杏花,阎志远,等. 基于Kubernetes的容器云平台设计与实践[J]. 铁路计算机应用,2019,28(12):49-53.
    [5] 秦利南,董路熙. 城市轨道交通客流预测算法研究[J]. 交通工程,2021,21(1):40-47, DOI: 10.13986/j.cnki.jote.2021.01.008
    [6] 何鸿杰,陈先龙. 基于指数平滑法和残差网络的短时交通流预测方法[J]. 交通工程,2023,23(3):97-106, DOI: 10.13986/j.cnki.jote.2023.03.015
    [7] 邹柏贤,刘 强. 基于ARMA模型的网络流量预测[J]. 计算机研究与发展,2002,39(12):1645-1652.
    [8] 李 恒,谭拂晓,孙 刚,等. 带有色公共干扰噪声的ARMA模型多传感器信息融合系统辨识[J]. 计算机应用,2013,33(S2):296-298.
    [9] 周飞燕,金林鹏,董 军. 卷积神经网络研究综述[J]. 计算机学报,2017,40(6):1229-1251.
    [10] 谭朋柳,徐光勇,张露玉,等. 基于卷积神经网络和Adaboost的心脏病预测模型[J]. 计算机应用,2023,43(S1):19-25.
    [11] 邹长忠. 无线传感器网络中基于SVR的节点数据预测算法[J]. 计算机应用,2010,30(1):127-129,136.
    [12] 靖 杰. 云环境中基于负载预测的弹性伸缩方案研究与实现[D]. 西安:西北大学,2022.
表(3)
计量
  • 文章访问数:  63
  • HTML全文浏览量:  30
  • PDF下载量:  21
  • 被引次数: 0
出版历程
  • 收稿日期:  2023-11-28
  • 刊出日期:  2024-02-27

目录

/

返回文章
返回