Linux内存优化KSM

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:jiaoranbuzi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:随着虚拟化的大规模运用,同一主机的不同的虚拟机可能运行相同的软件或处理相同的数据也正在迅速增长。KSM是一个Linux内核模块,允许在不同的进程和KVM虚拟机共享匿名内存。KSM主要任务是系统中找到相同的页面。它使用了两棵树,一个是稳定树,另一种是不稳定树。稳定树只包含已经共享的匿名页,不稳定树只包含由KSM监测但未共享的页面。本文介绍了KSM的稳定树和不稳定树,分析了KSM不稳定树的不稳定性,以及KSM的改进。
  关键词:KSM,rbtrees,匿名页
  中图分类号:TP316.81
  1 稳定树和不稳定树
  KSM树算法使用两个rbtrees,一个是稳定树,另一个是不稳定树。使用两棵树是一種优化,对最有可能适合使用共享树的虚拟内存区域,使用两棵树会增加页面共享的概率,同时减少不稳定树的不稳定。
  对于每一个匿名页扫描,内核线程首先在稳定树中搜索匹配,稳定树中只包含已经共享的页面,其中的共享页面是写保护,因此其内容是稳定的。如果在稳定树找到匹配,匿名页面就与KSM页面合并到稳定树中。
  如果没有发现匹配稳定树,KSM通过比对页面的校验和来确定匿名页面内容是否改变,如果校验和自上次KSM扫描以来发生改变,KSM更新校验和并跳过本页面。这是为了避免合并频繁改变内容的页面导致不稳定树出现颠簸。如果校验和不变,则搜索不稳定树。如果在不稳定树找到匹配页,则将不稳定树中的匿名页删除,并将合并的KSM匿名页加入到稳定树中,如果在不稳定树中找不到匹配项,则将匿名页加入到不稳定树中。当然,也可以通过页表项dirty位的改变,发信号通知KSM加入页表项对应的匿名页加入到不稳定树中。或通过CPU的特殊指令(这与具体的体系结构相关)加速计算校验和。这里的校验和本身和KSM树算法无关。不使用校验也能找到相同的页面;校验和本身只是保持不稳定树的稳定,避免将频繁变化的页加入不稳定树中。即使我们不计算校验和,KSM合并算法仍然可以工作。
  2 不稳定树的不稳定性
  我们必须避免不共享的页面的写保护,我们同时要避免通过KSM对整个虚拟内存扫描使匿名页在大部分时间都是写保护,这将导致大量的写时复制导致系统不可用。稳定树只包含共享KSM页,因为页面是写保护的,页面内容不会改变。而不稳定树只包含非共享的匿名页面,仍然可以通过应用程序改写匿名页面,不稳定树的查找会产生问题,图1是不稳定树的一个例子,它是稳定的。然而,如果一个应用程序写入不稳定树中的页面索引的第一个字节,比如页插入稳定树时第一个字节是0x3,之后应用程序改变为0x07,如图2所示不稳定树可能变得不稳定,这时的查找可能产生错误。
  为了避免不稳定和查找产生的错误,在每一次KSM扫描后,KSM清空不稳定树,这样新的不稳定树会在下次扫描时重建,这就避免了查找错误。
  图1 KSM不稳定树
  图2 KSM不稳定树的不稳定性
  3 KSM页合并
  用于页面合并的过程包含两个功能:page_wrprotect()和replace_page()。前者写保护所有页表映射的页面;后者合并两个页面并相应更新页表,然后释放已合并且没有页表映射的匿名页面。在page_wrprotect()之后,通过memcmp()确定两个页面内容完全相同,之后用replace_page合并页。
  4 计算时间的复杂度
  通常的x86架构(以及大多数的体系结构)是4096个字节。找到一个相等的页面成本,是将memcmp()的成本乘以树的级数。得益于rbtree的特性,所有的计算时间的复杂度(包括插入/搜索/删除功能)是O(log(N)),其中N是扫描的KSM的页面总数。因此,即使在最糟糕的情况下:前4092个字节的所有页面是相等的,只有最后一个4个字节不同,KSM树算法性能也不会降低太多。当然在memcmp()之前,如果引入hash算法,能够提高KSM树算法的性能,然而vmware公司的专利技术是不能回避的问题。
  5 KSM改进PKSM/UKSM
  5.1 对用户透明
  自动添加全系统的用户进程的匿名页面到PKSM中,因此不在需要用户修改用户程序
  5.2 高效的匿名内存页面检测
  自动检测匿名页面的创建和释放,使用新的算法和机制来直接处理Linux内核创建/释放匿名页面。PKSM不再需要浪费大量的CPU来遍历所有的VMA区域来查找可用的匿名页面。
  5.3 考虑内容全零页面
  PKSM将全零内存块视作特殊的内存页面,并将他们合并到一个特殊的不能交换的pksm zero page。
  5.4 周期性检查内存块的内容
  PKSM将不稳定的匿名页面放入一个FIFO队列中,周期性地检查其这些匿名页面的校验值,如果发现内容发生变化,那麽这些页面会重新进行比较和合并。系统默认每20分钟检查完所有的不稳定的匿名页面。
  参考文献:
  [1]Daniel P.Bovet,Marco Cesati,陈莉君,译.深入理解Linux内核[M].北京:中国电力出版社,2007(09).
  [2]ksm tries again[OL].http://lwn.net/Articles/330589/.
  [3]Anon-page KSM.Data Deduplication for Linux Kernel[OL].http://code.google.com/p/pksm/.
  作者单位:华为武汉研究所,武汉 430073
其他文献
摘 要:随着不同的领域对数据类型的苛刻需求,面向对象的思维模式,可以非常自然和直观地表达复杂的对象结构,操作方法与封装到数据库领域,以提高快速的数据处理能力。其独特的面向对象的特性不断冲击传统的关系数据库。文章强调面向对象数据库的特点,并讨论它们的属性数据库和未来发展趋势的发展过程中的独特优势。  关键词:面向对象;数据库系统;设计  中图分类号:TP311.13  在数据类型需求较多的计算机领域
随着现代信息技术的发展,我国互联网时代也随即到来,计算机网络被广泛的应用到生活各个方面。目前我国医院管理也开始引用计算机网络,这样有利于实现医院管理的现代化,提高管理工
随着计算机技术和信息技术的飞速发展,数据挖掘已经成为当今各行各业重点关注的对象。关联规则挖掘是数据挖掘中的一个非常重要的内容,通过关联规则挖掘能够从海量数据中分析出
随着国家出台各类引导地方普通本科高校向应用型转变的政策,地方高校都根据所在区域发展需要部署转型工作。吉林工程技术师范学院国际贸易专业作为学校转型试点专业,在理论教
恩格斯《英国工人阶级状况》一文揭示了英国工人阶级和资产阶级的道德面貌厦其产生的原因和发展的基本规律。对我们正确认识社会主义市场经济背景下的中国社会道德状况、建设
随着信息技术的发展,网络资源愈加丰富,网络已经成为人们获取信息资源的一个主要手段,但网络信息资源具有数据量大,筛选困难的缺点,如何对网络信息资源进行整合,并为用户提供
随着教育信息化的不断发展,互联网中的数字化学习资源已成为自主学习的主要知识来源,目前数字化资源存在着内容形式单一、有效及优质资源缺乏、学习资源不规范、资源库建设不合
就业平等权虽然与公法有关,与私法却存在更紧密的联系。就业行为是订立劳动关系的特殊私法行为。私法的民事权利能力平等理论和制度,是就业平等权的理论基石。基于绝对私法自治
当前,各地高校都高度重视校园文化建设,也都在劬力寻求德育工作与校园文化建设之间的对接点。借鉴以往经验,单一的某项制度或措施实难开启校园文化建设的大门,只能借助一整套
文章描述了在机房维护使用中,如何选择硬盘保护卡,如何利用硬盘保护卡进行合理的分区设置以及各类型硬盘保护卡在各品牌机器中产生的问题及应用策略描述,使计算机维护人员提