APP下载

计算机云上主机物理内存共用技术研究

2017-05-16樊林

中国管理信息化 2017年8期
关键词:计算机

樊林

[摘 要]内存是计算机的独占资源,仅本机可用,在不改动内存硬件配置的前提下,主机内存容量有限且不变。随着技术的发展,主机物理内存容量已经可以达到TB级别,但这样的主机价格高昂,因此,研究主机物理内存共用技术,既能降低企业的运营成本,也能解决资源利用率低下的问题,基于此,本文对云上主机物理内存共用技术进行了研究。

[关键词]计算机;云上;物理内存共用

doi:10.3969/j.issn.1673 - 0194.2017.08.085

[中图分类号]TP333 [文献标识码]A [文章编号]1673-0194(2017)08-0-02

1 云上技术与物理内存的基本概述

近年来,出现并不断发展的云计算是信息产业领域革命性改革的基础,它改变了用户使用计算机的方式,逐渐成熟的虚拟化技术使云计算这种商业模式得以推广普及。传统商业模式中,拥有计算能力的CPU、拥有存储能力的内存等硬件资源必须由每个用户单独购买,这造成了硬件闲置时间长,使用率低下等问题。虚拟化技术出现后,计算资源(如CPU时间片)、存储资源(如内存、硬盘)以虚拟商品形式出现,用户无需购买硬件,而是直接购买硬件所拥有的由虚拟化技术提供的计算能力或存储能力即可。这种将拥有不同大小计算能力或存储能力的虚拟化资源,以商品形式销售给用户的做法,使用户可以根据自己的需求定制个性化服务,节约了成本和开销。

虽然计算机云上虚拟机硬件设备,是通过虚拟化技术产生且没有物理形态的,但这些虚拟硬件设备的运作,仍然要依托虚拟机所在物理计算机的实体硬件设备。虚拟化技术通过一定方式,实现了虚拟硬件设备与物理计算机上实体硬件设备的交互,如在虚拟机中输入的虚拟CPU指令流,最终是输入到了物理计算机实体CPU中进行计算的,存储在虚拟内存中的数据实际上是存储在物理计算机实体内存中的。

从虚拟化技术和内存计算的特点可以看出,计算机内存的性能是决定计算机服务质量和处理能力的重要因素。计算机内存的性能,随着计算机技术的发展得到了不断的提升和优化,主要手段有三种。

(1)计算机体系结构的改革。体系结构的改革是硬件层面的改进,使CPU可更快速访问内存。

(2)计算机内存管理方式的改进。这种手段是操作系统内核层面的,目的是减少重复内存页面数量,以提高内存利用率;或增加虚拟内存,以提高可用内存容量。

(3)分布式内存资源整合共享。这种工作是在用户层面上的改进措施,其可以将物理上分散在不同主机上的内存资源在逻辑上整合为一体,以满足内存密集型应用对内容容量的需求。

总之,这三种改进路线虽然层次不同,但最终目的均是为了提升计算机的内存性能。

2 物理内存共用技术的研究

2.1 原型系统结构

内存共用原型系统中包括两种角色的主机:客户主机和服务主机,这两者同属于一个集群,通过高速网络相互连接。客户主机是内存借入方,服务主机是内存借出方,通过主机角色的转换,内存可以在主机之间相互借用,以此实现主机间的内存共用。

客户主机中的进程不仅可以使用本地物理内存,还可以向虚拟内存对象申请内存分配并使用。虚拟内存对象是由内核驱动创建的虚拟设备,它是集群中其他主机内存在本地的映射;客户主机中的进程可以向虚拟内存对象申请内存分配、读写内存页面,所有对虚拟内存对象的操作不会对本地物理内存的操作有任何差别。客户主机内核模块是客户主机中的核心部分,包含虚拟内存对象的驱动程序,另外,还负责内存的借用与归还。远端内存在本地虚拟内存对象中映射的建立和删除,通过网络进行数据的双向传输,向上提供管理接口,同时也是虚拟内存对象和本地网络设备之间通信的桥梁。

2.2 处理流程

云上物理内存共用技术处理流程主要有3个步骤,即虚拟内存对象扩展流程、虚拟内存对象主动收缩流程、虚拟内存对象被动收缩流程。

2.2.1 虚拟内存对象扩展流程

虚拟内存对象扩展机制是客户主机可用内存不足时,由客户主机内核模块自行调用的系统过程。该过程不需要用户层面程序进行干预,完全由内核模块发起操作,并处理过程中产生的错误。客户主机首先计算需要借用的内存块数量,BlkBor需要向上对齐到MemBlkSize的整数倍。

BlkBor=[(CPMT+CVMT)×CPer]÷MemBlkSize

计算出BlkBor后,客戶主机会从前向后遍历Server List列表,当某台服务主机的SerBlkAvail满足SerBlkAvail>0时,即可向该服务主机发起一次内存借用申请;不满足公式则从Server List中选择下一台服务主机判断其是否满足条件。如果Server List列表为空或所有服务主机均不满足上式,则表明无内存可借用,内存借用过程失败,本次内存扩展过程结束。

2.2.2 虚拟内存对象主动收缩流程

虚拟内存对象主动收缩流程如图1所示。

图1中,客户主机内核模块在系统启动后,每隔TCtest时间周期性检测系统当前内存使用情况。当客户主机空闲内存比例大于上限值PCU,即满足公式(1)时:

(1)

认为系统当前空闲内存率过高;当连续三次检测结果均显示当前空闲内存率过高时,则认为需要归还部分借用的内存块。若不满足归还条件则不做处理,结束本次内存收缩过程。

2.2.3 虚拟内存对象被动收缩流程

服务主机在运行的过程中同样会出现一定程度内存不足的情况,针对这种情况,在此借鉴虚拟机动态内存调节技术中的“气球技术”,并对其进行适应性修改。当服务主机内存过载时,通过停止借出内存或强制将借出的内存块回收等手段,优先保证服务主机的正常运行,这便是所谓虚拟内存对象被动收缩。

强制回收内存块时,服务主机对MemPoolTable中已借出的内存块进行统计,统计各客户主机借用的内存块数量,从中选出借用内存块最多的客户主机向其发送内存块强制归还消息。当客户主机收到强制归还内存块的消息后,遍历MemSlotTable,选定其中属于该服务主机且BlkUseRate最小的内存块,如果该内存块BlkUseRate为0,则直接归还该内存块;如果BlkUseRate不为0,则启用内存页面迁移机制,页面迁移时优先选择本地内存作为页面迁移目的地,其次选择虚拟内存对象中的其他内存块,最后选择页交换文件。当确认内存块完全空闲后,即可归还给对应的服务主机。

3 结 语

随着云计算、大数据的不断发展,海量计算业务对集群主机性能的要求越来越高。提升集群主机性能一方面可以通过单纯提升主机硬件配置实现,另一方面可通过软件技术手段对资源进行整合实现,因此,笔者希望通过本文的研究,能够为计算机物理内存的研究工作提供可以参考的依据资料。

主要参考文献

[1]王小银,陈莉君.Linux内核中内存池的实现及应用[J].西安邮电大学学报,2011(4).

[2]侯昉,王禹,赵跃龙.内存页面交换文件定位优化方法[J].计算机工程与应用,2010(4).

[3]魏海涛,姜昱明,李建武,等.内存管理机制的高效实现研究[J].计算机工程与设计,2009(16).

[4]史乐平,吴邦欲,顾明.桌面Linux操作系统页面交换算法的改进[J].计算机应用研究,2005(8).

猜你喜欢

计算机
计算机操作系统
穿裙子的“计算机”
基于LabVIEW的计算机联锁仿真系统
基于计算机自然语言处理的机器翻译技术应用与简介
计算机多媒体技术应用初探
信息系统审计中计算机审计的应用
计算机应用软件开发技术的几点探讨
计算机网络安全
iLOCK型计算机联锁开发中的需求开发管理
计算机联锁系统配置软件设计与实现