在centos7中限制kvm虚拟机可访问的资源
最近通过艰苦卓绝的度娘(我很想用谷歌,可是,你懂的),终于搞明白如何在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虚拟机可访问的资源的更多相关文章
- [原]CentOS7.2部署KVM虚拟机
前段时间学习了关于PostGis.OSM数据以及Mapnik相关内容,接下来将利用假期重点学习PostgreSQL-XL和瓦片服务器集群技术,因此先把环境搭好.计划采用KVM来充分利用家里不太宽裕的“ ...
- 云计算概述及Centos7下安装kvm虚拟机
云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源 云计算到底是什么? 按定义:云计算指的是一种使用模式,是基 ...
- CentOS7.2部署KVM虚拟机
转自:http://www.linuxidc.com/Linux/2017-01/140007.htm 学习了关于PostGis.OSM数据以及Mapnik相关内容,接下来将利用假期重点学习Postg ...
- Centos7.4安装kvm虚拟机(使用virt-manager管理)
之前介绍了使用WebVirtMgr或Openstack来部署及管理kvm虚拟机,下面简单介绍centos7.4下使用virt-manager部署及管理kvm虚拟机的做法: 0)KVM是什么 KVM(K ...
- docker容器中启动kvm虚拟机
.安装docker yum install docker systemctl start docker.service systemctl enable docker.service .拉取cento ...
- Centos7下搭建KVM虚拟机
PRE-INSTALL ============================================================= kvm相关安装包及其作用 qemu-kvm 主要的K ...
- 在Firefox中通过AJAX跨域访问Web资源---
一.解决在firefox中无法跨域访问的问题 AJAX从本质上讲就是命名用XMLHttpRequest组件来向服务端发送HTTP请求,请接收相应信息.至于成功接收到响应信息后的操作,就和普通的Web客 ...
- vmware中两台虚拟机互相访问
hosts文件 简单说,就是本来访问某个机器是通过其ip,在hosts文件中给ip对应一个名字,那么就可以通过名字来替代ip去访问该机器了(名字显然比ip好记) 环境:宿主机win10系统,安装了 ...
- VMware 中安装kvm虚拟机
环境准备: 安装vmware时需要自定义安装-开启虚拟化技术 安装成功之后就可以继续进行了. 1 查看CPU是否支持KVM egrep 'vmx|svm' /proc/cpuinfo --colo ...
随机推荐
- js为表格添加行和列
<table id="studentTable" align="center" border="1px;" cellpadding=& ...
- @@IDENTITY与SCOPE_IDENTITY的用法
SCOPE_IDENTITY 和 @@IDENTITY 的作用都是取得返回在当前会话中的任何表内所生成的最后一个标识值,简单的说就是在执行一条插入语句之后使用@@IDENTITY的全局变量 ...
- Winfrom treeview 如何从多个数据表中获取数据动态生成
本文转载:http://www.cnblogs.com/VincentLuo/archive/2008/03/29/1128987.html 在 汪洋怡舟的这篇文章中[http://www.cnblo ...
- C#-datagridview设置列宽
在使用datagridview的显示数据的过程中,常常会遇到需要设定datagridview的列宽,这就需要用到datagridview的属性: autosizemode
- paip.提升性能---- 网站并发数的总结.txt
paip.提升性能---- 网站并发数的总结.txt 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.n ...
- iOS开发——网络编程OC篇&GCDAsyncSocket编程
GCDAsyncSocket编程 同上一篇文章一样,这里也是使用Socket实现一个聊天室,但是这里使用的是一个常用的框架实现的:GCDAsyncSocket 一:导入这个框架 二:声明这个Socke ...
- android学习日记20--连接组件之Intent和IntentFilter
上次刚了解完Android的四大组件,现在学习组件间通信的Intent和IntentFilter 一.Intent 1.简述 Intent(意图)在应用程序运行时连接两个不同组件,是一种运行时的绑定机 ...
- hellogcc -100GDB技巧
https://github.com/hellogcc/100-gdb-tips/blob/master/README.md
- break和continue语句
跳转语句中断当前的执行过程,C++语言提供了4中跳转语句:break.continue.goto和return. break语句 break语句负责终止离他最近的while.do while.for或 ...
- 如何把 excel 设为文本格式?
选择要设置的单元格,右键选择 --- “设置单元格格式” --- 选 “ 分类 ” 下面的 “ 文本 ” --- 确定. 修改前: 修改后: