迁移速度与计算性能兼得!天翼云DirtyLimit技术大显身手

news2025/2/4 22:46:56

虚拟机技术的快速发展使系统迁移变得更加灵活且多样化,其广泛应用也促使用户对虚拟机迁移速度和性能影响提出了更高要求。天翼云弹性计算虚拟化团队创新研发DirtyLimit虚拟机迁移加速技术,能够在保证读vCPU性能几乎不下降的情况下,有效缩短虚拟机迁移时间,为用户打造更加优质的迁移体验。

虚拟机迁移加速技术背景

虚拟机迁移技术能够将虚拟机从一台物理服务器迁移到另一台物理服务器。在云计算环境中,虚拟机迁移技术可以提高云数据中心服务器的资源利用率,达到节能和负载均衡的目的。

热迁移开始前,虚机在源主机运行,迁移开始后会在目的主机创建虚机并将其状态设置为暂停,源源不断地接受源主机发送的内存数据,直到源主机剩余内存量足够小,最后暂停源主机,将剩余的内存一次性拷贝至目的主机。

一些业务程序繁忙的虚机,迁移过程会产生大量内存脏页,这类虚机迁移成功的关键在于迁移拷贝脏页的速率要大于产生脏页的速率。为满足该条件,业界提出了许多迁移加速算法,包括auto-converge,compression,multifd,xbzrle等。

虚拟机迁移加速技术路线

auto-converge

核心思想是降低脏页产生的速率。通过减少虚拟机vCPU运行时间来降低虚机脏页产生速率,使其小于迁移拷贝速率,以满足迁移收敛条件。

优点:任何虚拟化场景都适用且有效。

缺点:限制虚机脏页产生的同时,也限制了虚机CPU运行时间,虚机的计算性能在迁移过程中也随之下降。

compression

核心思想是压缩减少迁移传输的数据量。通过在拷贝数据前压缩数据量,间接增大单位时间内迁移拷贝的数量,以满足迁移收敛条件。

缺点:在计算资源充足且网络带宽有限的情况下适用,应用场景有限。

xbzrle

核心思想是压缩迁移时传输的增量数据。利用CPU cache缓存要压缩的增量数据,间接增大迁移传输速率,以满足收敛条件。

缺点:在虚机增量数据多为稀疏类型的情况下适用,应用场景有限。

multifd

核心思想是在迁移时建立多个传输通道。通过增加迁移时并发传输的数量,间接增大迁移传输速率,以满足迁移收敛条件。

缺点:在没有最大化利用迁移带宽的场景下适用,应用场景有限。

在众多迁移加速技术路线中,auto-converge由于不受场景限制且可以有效降低虚机脏页速率,成为了主流的迁移加速配置。但auto-converge无法确定虚机中产生脏页的vCPU,在方案实现时往往采用较为激进的方式将所有虚机vCPU都限制运行,以达到降低脏页速率的目的,虚机中并不产生脏页的读vCPU也成为了“受害者”,导致整体计算性能下降。

天翼云基于Intel PML硬件机制,借助内核dirty ring特性,提出了软硬结合的vCPU速率检测和限制方法,作为DirtyLimit的核心技术,最终解决了迁移过程中读vCPU性能下降的问题。

天翼云DirtyLimit技术

DirtyLimit核心思想与auto-converge相同,都是通过减少虚拟机vCPU运行时间来降低虚机脏页产生速率。但在具体实现上则采用了完全不同的底层技术,以克服auto-converge使虚机vCPU性能下降的缺点。

DirtyLimit除了具有传统auto-converge的优点外,还弥补了它的不足,具备更强大的使用潜质和更广泛的推广场景。

DirtyLimit与auto-converge技术对比如下:

限制脏页产生的方式

auto-converge与DirtyLimit相同,都通过减少虚拟机vCPU运行时间来实现。

auto-converge为“主动型”,hypervisor主动采样数据判断迁移收敛情况,如果不收敛会“主动”限制vCPU运行时间;DirtyLimit为“被动型”,利用Intel提供的PML(Page Modification logging)硬件脏页日志跟踪机制,实现物理CPU的脏页速率监测,速率限制会在脏页速率大于阈值时“被动”触发。

对比两种策略,auto-converge因为要“主动”采样计算,计算资源开销更大,而且从采样计算到速率限制有一定延迟,虚机脏页速率限制较为“迟钝”。DirtyLimit则没有上述缺点,“被动”地触发速率限制,没有计算资源开销,对限制也更“灵敏”,能够更快地开始速率限制,从而减少虚机迁移时间。

脏页限制的粒度

auto-converge对于脏页限制的粒度为整个虚机的所有vCPU,因此无论vCPU是否产生脏页,都会被hypervisor“盲目”地限制,使不产生脏页速率的读进程成为“受害者”,计算性能随之下降。

DirtyLimit只针对脏页速率大于阈值的vCPU,不仅速率限制的粒度更小,限制策略更灵活,而且对不产生脏页的vCPU不做速率限制,使读进程不受hypervisor速率限制的影响,迁移过程中读进程所在vCPU的计算性能几乎接近正常运行的vCPU。

相比auto-converge,DirtyLimit迁移在读vCPU计算性能方面有明显提升,可有效降低对用户业务的影响。

对比测试结果

1.迁移时间对比测试结果

3种测试环境迁移时间对比  场景1第三个柱状图百分比更新为76%

从实际测试数据中可以看到:

1. 随着虚机脏页速率的增大,auto-converge与DirtyLimit迁移总时间差距会逐渐拉大。

2. 对于带宽较小的场景(如场景1),虚机脏页速率很大,在极端情况下,auto-converge可能会出现迁移失败的情况。而DirtyLimit依然能保证虚机成功迁移。

2.vCPU计算性能对比测试

测试方法

虚机内部分别绑核运行脏页产生程序和计算性能测试工具unixbench,脏页产生程序运行在0-1核,性能测试工具运行在8-15核(如下图测试模型所示),保证两个程序互不干扰。分别测试虚机在正常运行时间窗口、DirtyLimit迁移时间窗口、auto-converge迁移时间窗口三种场景下的unixbench跑分。

测试模型

迁移过程虚拟机性能对比

从测试结果可以看到,auto-converge迁移相比正常运行的虚机,计算性能下降相对明显,而DirtyLimit迁移相比正常运行的虚机,计算性能几乎没有下降。

DirtyLimit是天翼云在虚拟机迁移加速技术上的创新尝试,使用户迁移速度与计算性能兼得,大幅提升用户系统迁移体验。未来,天翼云将继续优化DirtyLimit脏页采集逻辑,提升迁移过程中虚机内存性能,并将DirtyLimit迁移特性实现代码同步至Libvirt、QEMU、欧拉社区,为行业虚拟机迁移加速技术的研究贡献力量。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

行业沙龙第五期丨供应商全生命周期管理赋能高质量采购

找不到好的供应商、供应商管理难,高成本效率低,货品质量难管控、交货不及时等等,导致错失了客户,太可惜了,怎么办呢?追根溯源,这些问题的源头多在于没有做好供应商管理。 供应商管理是供应链采…

[LeetCode 1760]袋子里最少数目的球

题目描述 题目链接:[LeetCode 1760]袋子里最少数目的球 给你一个整数数组 nums ,其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。 你可以进行如下操作至多 maxOperations 次: 选择任意一个袋子,并…

week8 正交化/human-level error/train,dev,test sets

文章目录前言一、8.1,8.2 正交化二、8.3,8.4评估指标1、 单一量化评估指标2、满足和优化指标三、8.5-8.7训练开发测试数据集1、训练开发测试数据集的分布。2、训练开发测试数据集的大小选择3、何时更改指标或者开发测试数据集四、 8.8-8.12 与人类水平相比较1、为什么选择与人类…

单商户商城系统功能拆解49—应用中心—在线客服

单商户商城系统,也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法,例如拼团,秒杀,砍价,包邮…

工业物联网解决方案:油井数据远程监控系统

石油行业是国民经济的重要能源支柱,是推动工业发展的原动力。随着物联网、云计算、5G无线通信等技术的发展,多种要素驱动下的生产系统逐步向着数字化转型,重要性越来越明显。油井数字化就是其中的重要一环。 油田开采区域广阔,分…

【苹果推iMessage送】摆设overrideUserInterfaceStyle属性以使该视图及其子视图具备特定的UIUserInterfaceStyle

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

攻防世界-宜兴网信办-fileinclude

题目 访问题目场景 查看网页源代码&#xff0c;发现其中存在php代码 <?php if( !ini_get(display_errors) ) { //ini_get是获取php.ini里的环境变量的值。环境变量未设置错误回显ini_set(display_errors, On);} error_reporting(E_ALL);//报告所有类型的错误 $lan $_COOK…

微信小程序遍历Echarts图表,实现遍历多个柱状图

1.wxml文件 <view stylewidth:100%;height:200rpx><ec-canvas id"mychart-dom-bar" canvas-id"mychart-bar" ec"{{ ec }}"></ec-canvas> </view>2.js文件 import * as echarts from ../../common/ec-canvas/echarts; …

rocketmq源码-consumer已消费offset更新逻辑

前言 这篇博客&#xff0c;主要记录consumer已经消费的offset是如何更新的 对于集群模式&#xff0c;offset是维护在broker中的&#xff1b;而广播模式&#xff0c;offset是存储在本地文件中&#xff08;暂时没有验证具体存储的位置&#xff0c;是根据源码推测的&#xff09;…

socket,http和websocket的区别

HTTP协议是非持久化的&#xff0c;单向的网络协议&#xff0c;在建立连接后只允许浏览器向服务器发出请求后&#xff0c;服务器才能返回相应的数据。当需要即时通讯时&#xff0c;通过轮询在特定的时间间隔&#xff08;如1秒&#xff09;&#xff0c;由浏览器向服务器发送Reque…

Delft3D水动力-富营养化模型

湖泊富营养化等水质问题严重威胁我国经济社会的发展&#xff0c;也是水环境和水生态领域科研热点之一。水环境模型是制定湖泊富营养化控制对策&#xff0c;预测湖泊水环境发展轨迹的重要工具&#xff0c;在环境影响评价、排污口论证等方面也有着广泛的应用。荷兰Delft研究所开发…

Oracle数据库:数据的仓库,永久就存储,Oracle安装教程,修改Oracle scott,sys,system用户的密码,查看表格

Oracle数据库&#xff1a;数据的仓库&#xff0c;永久就存储&#xff0c;Oracle安装教程&#xff0c;修改Oracle scott&#xff0c;sys&#xff0c;system用户的密码&#xff0c;查看表格 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人…

Diffusion理论知识学习-预备

马尔科夫链 总体思想: 过去的所有信息都被保存在了现在的状态中&#xff0c;只使用现在状态就能预测到之后的状态&#xff0c;换句话说就是某个时刻的状态转移概率只依赖于它的前一个状态。 公式化表达:P(xt1∣xt,xt−1,...,x1,x0)P(xt1∣xt)P(x_{t1}|x_t,x_{t-1},...,x_1,x_0…

打造钢材行业智能制造新业态,B2B电商平台系统赋能企业交易全链路数字化

钢铁行业是制造业的“脊梁”&#xff0c;是工业的“粮食”&#xff0c;在我国由制造大国向制造强国挺进的过程中&#xff0c;钢铁行业由全球“老大”变“强大”至关重要&#xff0c;而数字化转型将发挥不可替代的作用&#xff0c;实施绿色制造、智能制造和精益制造&#xff0c;…

阿里中间件的源与流

目录前言从中间件->中台->阿里云从五彩石项目说起从HSF到EDAS从TDDL到PolarDB-XTDDL阶段DRDS阶段PolarDB-X 1.0阶段PolarDB-X 2.0阶段从Notify到RocketMQ阿里中间件一览参考链接前言 阿里中间件如雷贯耳&#xff0c;听上去高深莫测&#xff0c;那到底是哪几样神兵利器呢…

【MySQL】1.MySQL基础

文章目录1.0 数据库基本概念1.1 主流数据库介绍2.0 MySQL数据库架构2.1 MySQL软件分层2.1 MySQL存储引擎2.2 SQL语句分类1.0 数据库基本概念 想要理解数据库的概念&#xff0c;首先要了解数据库为何存在&#xff0c;它存在的价值是什么&#xff1f; 在之前的学习中&#xff0c…

用Python绑定调用C/C++/Rust库

用Python绑定调用C/C/Rust库 在《让你的Python程序像C语言一样快》我们学习了如何利用Python API来用C语言编写Python模块&#xff0c;通过将核心功能或性能敏感运算用C语言实现&#xff0c;Python程序可以运行地像C语言一样快。然而&#xff0c;很多时候我们需要的功能已经有…

Mycat(11):分片详解之字符串ID处理

1 找到conf/schema.xml并备份 2 字符串ID处理的分区算法 conf/rule.xml <tableRule name"jch"><rule><columns>id</columns><algorithm>jump-consistent-hash</algorithm></rule></tableRule><function name&qu…

css之grid布局个人学习笔记

前置 只是个人学习,内容只会记录自己想知道,有问题的知识点具体可以看看bilibili的耕耕技术宅-grid布局地址视频对应的耕耕技术宅-grid布局ppt地址学有余力的可以通关下这个小游戏通过给萝卜浇水&#xff0c;学习 CSS 网格布局CSS Grid 网格布局教程- 阮一峰 明确基本概念 下…

品牌创建百科怎么写?品牌百度百科怎么创建?

每年都会有很多新成立的品牌&#xff0c;但是能够被大众所熟知的却是寥寥无几&#xff0c;众多品牌都被淹没在了大千世界里。 一个品牌的创建&#xff0c;难的就在于宣传&#xff0c;宣传力度不到位&#xff0c;就没有用户会愿意为这个品牌买单。 那么怎么快速提升品牌的知名度…