qemu-kvm磁盘读写的缓冲(cache)的五种模式

qemu-kvm磁盘读写的缓冲(cache)模式一共有五种,分别是
writethrough, wirteback, none, unsafe, directsync
当你对VM读写磁盘的性能有不同的要求的时候,你可以在其启动的参数(cache=xxxx)
里面进行一个合理的选择.

现在来简单说一说这五种模式的各自的特点(默认的是writeback)

 

cache=writethrough:
  该模式对应的标志位是O_DSYNC,仅当数据被提交到了存储设备里面的时候,写操作
  才会被完整的通告。此时host的页缓存可以被用在一种被称为writethrough缓存的模式。
  guest的虚拟存储设备被告知没有回写缓存(writeback cache),因此guest不需要为了
  操纵整块数据而发送刷新缓存的指令了。此时的存储功能如同有一个直写缓存(writethrough cache)一样

 

cache=none:
  所对应的标志位是O_DIRECT,在 none 模式下,VM的IO操作直接
  在qemu-kvm的userspace缓冲和存储设备之间进行,绕开了host的页缓冲。
  这个过程就相当于让vm直接访问了你的host的磁盘,从而性能得到了提升

 

cache=writeback:
  对应的标志位既不是 O_DSYNC 也不是 O_DIRECT ,在writeback模式下,IO操作会经过
  host的页缓冲,存放在host页缓冲里的写操作会完整地通知给guest.
  除此之外,guest的虚拟存贮适配器会被告知有回写缓存(writeback cache),所以为了能够
  整体地管理数据,guest将会发送刷新缓存的指令.类似于带有RAM缓存的磁盘阵列(RAID)管理器.

 

cache=unsafe:
  该模式与writeback差不多,不过从guest发出的刷新缓存指令将会被忽视掉,这意味着使用者
  将会以牺牲数据的完整性来换取性能的提升。

 

cache=directsync:
  该模式所对应的标志位是O_DSYNC和O_DIRECT,仅当数据被提交到了存储设备的时候,写
  操作才会被完整地通告,并且可以放心地绕过host的页缓存。
  就像writethrough模式,有时候不发送刷新缓存的指令时很有用的.该模式是最新添加的一种cache模式,
  使得缓存与直接访问的结合成为了可能.


参考链接:
  -https://www.suse.com/documentation/sles11/book_kvm/data/sect1_1_chapter_book_kvm.html
  -http://www.ilsistemista.net/index.php/virtualization/23-kvm-storage-performance-and-cache-settings-on-red-hat-enterprise-linux-62.html?limitstart=0
  -http://smilejay.com/2012/08/qemu-kvm-cache-off/

转载于:https://www.cnblogs.com/jusonalien/p/4772618.html

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

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

相关文章

Windows下安装Tensorflow

安装TensorFlow 步骤一: 从官方网站下载Anacondahttps://www.anaconda.com/download/ 步骤二: 安装软件(和普通的安装软件没什么区别) 注意一点: 步骤三: 安装完成Anaconda之后进行环境变量的测试 进…

人工智能正在向具有“高情商”发展

来源:网络大数据目前机器智能领域的成功主要依赖于计算能力,为了做出最佳决策可能搜索数十亿次。如果决策成功的话,往往表明计算能力已经赶上甚至超过人类的智力。人类智能是高度概括的、自适应的和健壮的,即使当前最先进的机器智…

postman测试 上传下载文件

postman测试 上传下载文件 1 测试上传文件 选择 Body选择 form-data参数 key 值 填写后 在后面下拉选择 filevalue 点击 Select Files 选择需要上传的文件 2 测试下载文件 请求方式请求地址和接口Send 按钮下拉选择 Send and Download ,点击即可弹出窗口选择保存文…

.net学习笔记----WebConfig常用配置节点介绍

一、配置文件入门 .Net提供了一种保存项目配置信息的办法,就是利用配置文件,配置文件的后缀一般是.config。在WinForm程序中配置文件一般是App.config。在Asp.net中一般默认是web.config。 一个.config配置文件都是基于XML的文本文件,并且可以…

AttributeError: module 'tensorflow' has no attribute 'FIFOQueue'

今天在学习队列时按照书里写了一段代码,但是运行时却报错了 import tensorflow as tfq tf.FIFOQueue(2, "int32") init q.enqueue_many(([0, 10],)) x q.dequeue() y x 1 q_inc q.enqueue([y])with tf.Session() as sess:init.run()for _ in range…

对话微软黄学东:语音语言技术是镶在 AI 皇冠上的明珠

来源:AI科技评论AI 科技评论按:上一次你和你的电脑进行有意义的对话,并感受到它能真正地理解你,是什么时候?如果微软技术研究员、微软的语言语音小组组长黄学东博士做到了的话,那么你也将可以做到。并且&am…

权限列表(包字典)递归成树状结构

权限列表(包字典)递归成树状结构 def per_data(permission_list, parent_id):tree []for per in permission_list:if per[per_moudel_id] parent_id:per[children] per_data(permission_list, per[per_id])tree.append(per)return treeif __name__ __main__:dict [{per_i…

tf.data.TextLineDataset()

dataset tf.data.TextLineDataset(file_path) 生成一个dataset,dataset中的每一个元素就对应了文件中的一行

兴起与繁荣,那些正在启航的行业

来源:前瞻产业研究院任何一个行业都依附于时代大势生存,只有跟着高速发展的时代脚步,行业才能有所发展。一旦经济大势散去,任何行业或企业就会陷入低利润的危机甚至被淘汰。未来智能实验室是人工智能学家与科学院相关机构联合成立…

Django 应用分库,数据迁移成功,数据库没有生成表

Django 应用分库,数据迁移成功,数据库没有生成表 背景:不同应用对应不同数据库,在迁移数据成功后,数据库没有生成表 Django 官网:https://docs.djangoproject.com/ko/1.11/topics/db/multi-db/#allow_mig…

dataset.filter

dataset dataset.filter(Func) filter接收一个函数Func并将该函数作用于dataset的每个元素,根据返回值True或False保留或丢弃该元素,True保留该元素,False丢弃该元素

JQuery中的DOM操作

jQuery 中的 DOM 操作 一.介绍 1.概念:  •DOM(Document Object Model—文档对象模型):一种与浏览器, 平台, 语言无关的接口, 使用该接口可以轻松地访问页面中所有的标准组件。2.DOM操作的分类:–DOM Core: DOM Core 并不专属于 JavaScript…

Django——多个数据库

Django——多个数据库 官方文档:https://docs.djangoproject.com/en/3.2/topics/db/multi-db/ 主要介绍Django 对与多个数据库交互的支持。 1. 数据库服务器 DATABASES 在Django中使用多个数据库的第一步是告诉Django将要使用的数据库服务器。 这是通过使用 DAT…

聚焦第三届世界智能大会|大佬们讲了哪些干货?

文章来源:天津广播今天第三届世界智能大会举办两场主论坛高峰会柳传志、周鸿祎、王传福等各界大咖悉数亮相嘉宾围绕智能科技产业发展进行深层次探讨展开深度思想碰撞分享创新经验演讲的干货信息都在这了 ▼万钢:人工智能遇到“成长的烦恼”全国政协副主席…

tf.nn.embedding_lookup

用法: a1 tf.nn.embedding_lookup(a, index) index是索引,a是输入,通过index来选取a中对应的元素返回给a1,注意index是从0开始算起 例子: import tensorflow as tfa tf.constant([5, 6, 7, 8, 9]) index tf.con…

mac下配置eclipse的maven环境

转自:http://www.cnblogs.com/yqskj/archive/2013/03/30/2990292.html 1、下载maven的bin包,解压,配置到环境变量里面去 1)、首先到Maven官网下载安装文件,比如 ,下载文件为apache-maven-3.0.3-bin.tar.gz2…

装饰器详解

装饰器 1. 需求 需求:在func函数执行前输出before,执行后输出after。 def func():print("我是func函数")value [11,22,33,44]return valueresult func() print(result)1.1 闭包实现 # ********闭包实现******** def func():print("…

tf.sequence_mask

用法: sequence_mask(lengths,maxlenNone,dtypetf.bool,nameNone ) 函数参数 lengths:整数张量,其所有值小于等于maxlen。maxlen:标量整数张量,返回张量的最后维度的大小;默认值是lengths中的最大值。dt…

国产首款脑机编解码集成芯片发布

来源:科学网5月17日,由中电云脑(天津)科技有限公司(简称“中电云脑”)联合天津大学共同研发的国产首款脑机编解码集成芯片——“脑语者”在天津第三届世界智能大会上正式发布。这是一款拥有完全自主知识产权…

软件工程的认识

软件工程是一门研究用工程法构建和维护有效的、实用的和高品质的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式方面。在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译…