最近通过艰苦卓绝的度娘(我很想用谷歌,可是,你懂的),终于搞明白如何在centos7中限制kvm虚拟机可访问的资源了。
度娘给出的结果中,大部分都说的很对,然而,却很难照着做,主要原因有两点:
1、网上的版本大都是针对centos6.x而写的,但是centos7和centos6的操作有些不同。
比如centos6中启动服务的命令是用/etc/init.d/目录下对应的服务的start方法,而centos7中对服务的管理都是靠systemctl这个命令。
2、对命令中的某些参数解释的不够清晰,甚至是没有解释,直接扔一个命令上去,然后说这个命令能起到什么作用。
对于符合这一点的文章,我一般称为技术八股文。不幸的是,网上的文章大部分都是技术八股文。
下面就把我实现的步骤写下来。
一般来说,升级一下系统吧。升级系统可以把系统中的软件更新到最新状态,这样可以最大程度的减少一些莫名其妙的问题。命令如下:
yum update -y
参数-y是为了更新系统是不提示直接安装。如果你喜欢每次都按一下键盘的话,就不要带这个参数了。
另外,如果不是root用户,要用sudo:
sudo yum update -y
然后安装libcgroup和libcgroup-devel。这两个是为系统增加cgroup功能,具体每个包都是干什么,我也不知道。
yum install libcgroup libcgroup-devel -y
安装完成后,系统中会增加一个叫做cgconfig的服务。
网上一般都要求启动此服务。但是我测试的情况是,不启动这个服务也可以。
为了和网上保持一致,就启动此服务吧。
使用systemctl启动此服务:
systemctl start cgconfig

如果想看此服务的状态,可以用以下命令来看:
systemctl status cgconfig
看其他服务的状态也是用这个命令。
如果看到“Active: active (exited)”的字样,就说明启动成功了。
网上一般都要求设置此服务为自动启动,既然我觉得没用,就不设置了。
网上一般都说服务启动后在根目录下看到cgropu的目录,但是我也没有看到。不过这个似乎和我这个初学者没有半毛钱关系,能用就行。
下面就是设置对磁盘资源的控制。这个主要是靠virsh这个命令中的子命令blkiotune和blkdeviotune进行设置。blkdeviotune没研究不解释。blkiotune设定的是某个虚拟机对资源的访问,网上的资料说可以设置权重(weight),但是我设置后没发现有什么作用,所以我还是强制设定的读写速度。这里总共有六项可以设定。通过以下命令查看指定名字的虚拟机当前的设定:
virsh blkiotune win2k8r2
输出如下:
weight         : 0
device_weight  :
device_read_iops_sec:
device_write_iops_sec:
device_read_bytes_sec:
device_write_bytes_sec:

命令中的“win2k8r2”就是要设定的虚拟机的名字。
这里可以看到六项可以设定的内容。我只设定device_read_bytes_sec这一项。设定命令如下:
virsh blkiotune win2k8r2 --device-read-bytes-sec /dev/sda2,5000000
这样就把名字为win2k8r2的虚拟机对/dev/sda2这个设备的读取速度限制在5M了。这里要注意的是,参数中的“-”,单词前面用的是“--”,两个减号;单词之间用的是“-”,一个减号,而上一个命令中显示的是对应项目,用的是下划线。
要注意的是,虽然我们限制了读取速度为5M,但实际上可能会在这个速度上下波动。
查看设置是否成功的方法是用iotop这个工具,使用方法类似于top,就不解释了。

最后声明一下,这篇文章仅适于初学者,如果你是大牛,请无视。

在centos7中限制kvm虚拟机可访问的资源的更多相关文章

  1. [原]CentOS7.2部署KVM虚拟机

    前段时间学习了关于PostGis.OSM数据以及Mapnik相关内容,接下来将利用假期重点学习PostgreSQL-XL和瓦片服务器集群技术,因此先把环境搭好.计划采用KVM来充分利用家里不太宽裕的“ ...

  2. 云计算概述及Centos7下安装kvm虚拟机

    云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源 云计算到底是什么? 按定义:云计算指的是一种使用模式,是基 ...

  3. CentOS7.2部署KVM虚拟机

    转自:http://www.linuxidc.com/Linux/2017-01/140007.htm 学习了关于PostGis.OSM数据以及Mapnik相关内容,接下来将利用假期重点学习Postg ...

  4. Centos7.4安装kvm虚拟机(使用virt-manager管理)

    之前介绍了使用WebVirtMgr或Openstack来部署及管理kvm虚拟机,下面简单介绍centos7.4下使用virt-manager部署及管理kvm虚拟机的做法: 0)KVM是什么 KVM(K ...

  5. docker容器中启动kvm虚拟机

    .安装docker yum install docker systemctl start docker.service systemctl enable docker.service .拉取cento ...

  6. Centos7下搭建KVM虚拟机

    PRE-INSTALL ============================================================= kvm相关安装包及其作用 qemu-kvm 主要的K ...

  7. 在Firefox中通过AJAX跨域访问Web资源---

    一.解决在firefox中无法跨域访问的问题 AJAX从本质上讲就是命名用XMLHttpRequest组件来向服务端发送HTTP请求,请接收相应信息.至于成功接收到响应信息后的操作,就和普通的Web客 ...

  8. vmware中两台虚拟机互相访问

    hosts文件   简单说,就是本来访问某个机器是通过其ip,在hosts文件中给ip对应一个名字,那么就可以通过名字来替代ip去访问该机器了(名字显然比ip好记) 环境:宿主机win10系统,安装了 ...

  9. VMware 中安装kvm虚拟机

    环境准备: 安装vmware时需要自定义安装-开启虚拟化技术   安装成功之后就可以继续进行了. 1 查看CPU是否支持KVM egrep 'vmx|svm' /proc/cpuinfo --colo ...

随机推荐

  1. HDU 3635 并查集+路径压缩+记录每个点移动次数

    题意: 给定n个点 oper个操作 每个点有1个龙珠 下面2种操作: T u v 把u点所有龙珠搬到v Q u  问u点当前所在城市 u点所在城市有几个龙珠 u点被移动几次 思路: 并查集可以求出 u ...

  2. linux系统基础(一)

    Linux简介与安装Unix ;windows; linux; apple(mac) linux=kernel (内核)=OSlinux全是文件============================ ...

  3. cocos2d-x中CCTextureCache图片资源的异步加载<转>

    如果没有预先加载图片,则可以通过addImageAsync()函数实现异步加载,该函数通过创建一个加载线程来加载图片,并且在主线程中通过调用回调函数来读取该图片资源纹理.其主要过程如下: 1.创建线程 ...

  4. 【转】rvm安装ruby,gem,rails,之后仍然无法找到rails命令

    转自:http://chinacheng.iteye.com/blog/1738036 rvm安装ruby和rails之后,ruby -v好使,gem -v好使.但是rails -v不好使,提示没有安 ...

  5. SpringMVC+Spring3+hibernate4 开发环境搭建以及一个开发实例教程

    刚刚接触了SpringMVC这个框架,因此有必要把它拿过来同hibernate.Spring框架进行集成和开发一个实例,在真正企业从头开发的项目中往往一个稳定的开发环境至关重要,开发一个项目选择什么样 ...

  6. solr-1.4.1 环境配置

    solr-1.4.1 环境配置: Solr是一个apache名下非常好用的开源索引.搜索工具,网上的资料虽多但非常杂,笔者花了一天的时间对Solr进行了较为初步的研究,对Solr的基础应用做了一定的总 ...

  7. 实例源码--Android简单团购应用源码

      下载源码   技术要点: 1.HTTP通信技术 2.XML数据解析 3.控件的简单应用 4.源码带有非常详细的中文 注释 ...... 详细介绍: 1. HTTP通信技术 通 过HTTP通信技术, ...

  8. java_jdbc_可滚动结果集与分页

    public static void create2(int i) { Connection conn = null; Statement st = null; ResultSet rs = null ...

  9. C#_数据库基本交互

    //app.config <?xml version="1.0" encoding="utf-8" ?> <configuration> ...

  10. swift的特点

      2个不需要: 1.不需要编写main函数:从上往下按顺序执行代码,所以最前面的代码会自动当做程序的入口   2.不需要在每一条语句后面加分号(也可以加):若是有多条语句在同一行就一定要加分号   ...