海运的博客

一些虚拟化工具

发布时间:September 24, 2014 // 分类:虚拟化 // No Comments

vagrant
docker
virtualenv
rvm

XenServer通过ionice限制VM虚拟机硬盘IO

发布时间:June 8, 2013 // 分类:虚拟化 // 1 Comment

之前有文章介绍Xen下通过ionice限制VM虚拟机硬盘IO优先级XenServer获取虚拟机进程和Xen不同,可通过以下方法查找虚拟机IO进程,并使用ionice限制。
首先获取VM虚拟机的UUID:

xe vm-list name-label=<vm-name> --minimal

然后再获取VM的DOM ID:

list_domains |awk '/<vm-uuid>/ {print $1}'

通过DOM ID获取VM相对应的进程ID:

ps aux|grep xb.*<dom-id>.xvd
root     10995  0.0  0.0      0     0 ?        S    10:08   0:01 [xb.00003.xvda]
root     10996  0.0  0.0      0     0 ?        S    10:08   0:00 [xb.00003.xvdd]

使用ionice调整相应进程的IO优先级策略即可。

Xen限制VM虚拟机磁盘IO

发布时间:June 8, 2013 // 分类:虚拟化 // No Comments

作为VPS服务商我们需要保证每个VPS公平的使用 host(服务器)的资源,避免某个VPS因为程序死循环、挂起、滥用等因素 “拖累”其他VPS,如果出现这个情况如何临时限制这个VPS的磁盘IO呢?有个办法是通过通过修改每个虚拟机CPU权重的办法间接、不精确的限制 IO. 在 Linux 上限制资源(CPU、内存、IO 等)的通常办法是用 cgroups,不过今天介绍的 ionice 要更容易一些。

首先找到哪个虚拟机(VPS)正在大量IO(假设是 vps0001),找到这个虚拟机后用xm list查出这个虚拟机使用的 ID 号,然后用ID配上blkback(blkback.24)找出这个虚拟机(通过Xen的 blkback 驱动)关联哪些硬盘(blkback.24.xvda 和 blkback.24.xvdb),以及所使用的进程号(25089 和 25090):

# xm list vps0001
Name                                      ID Mem(MiB) VCPUs State   Time(s)
vps0001                                   24     1024     2 -b----  70030.7

# ps aux | grep blkback.24
root      7434  0.0  0.1  61172   768 pts/16   D+   02:48   0:00 grep blkback.24
root     25089  0.0  0.0      0     0 ?        S<    2012   0:00 [blkback.24.xvda]
root     25090  0.0  0.0      0     0 ?        S<    2012   0:00 [blkback.24.xvdb]

找到进程号后我们就可以 ionice 了:

ionice -p 25089 -c 2 -n 7

使用 ionice 之前查一下帮助文件,-c 是指定调度类型,这里选择的是 2,best-effort;-n 指定调度优先级,0 最高,7最低;-p 是指定进程号:

OPTIONS
-c The scheduling class. 1 for real time, 2 for best-effort, 3 for
idle.

-n The scheduling class data. This defines the class data, if the
class accepts an argument. For real time and best-effort, 0-7 is
 valid data.

-p Pass in a process pid to change an already running process. If
this argument is not given, ionice will run the listed program
with the given parameters. 

ionice 把磁盘 IO 调度分成三类:

real time 实时调度,设置后立即访问磁盘,不管系统中其他进程是否有 IO,可能会使得其他进程处于等待状态,不能用在这里;
best effort 默认调度,可以指定调度优先级(从0到7,数值越小、优先级越高);同一优先级的进程采用 round-robin 算法调度;
idle 空闲调度,只有当前系统没有其他进程磁盘 IO 时,才能进行磁盘 IO.

额,如果太过分,我们就把这个进程的调度改成 idle,这样会极大降低这个虚拟机的 IO,虚拟机只能保持基本可用状态,不推荐~

ionice -p 25089 -c 3

原文:http://www.vpsee.com/2013/06/using-ionice-to-mediate-xen-vm-disk-io/

此内容被密码保护

发布时间:January 5, 2013 // 分类:虚拟化 // No Comments

请输入密码访问

XenServer修改Linux/Windows系统模板内存等资源限制

发布时间:January 5, 2013 // 分类:虚拟化 // No Comments

XenServer虚拟机系统模板对内存等资源有做限制,在新建虚拟机时分配的资源不能小于模板最小限额。
XenServer下查看CentOS6 32位模板内存最小限制:

xe template-list name-label=CentOS\ 6\ \(32-bit\) params=memory-static-min --minimal
536870912

可见内存最小限制为512M,如果安装Centos6虚拟机内存不能小于512M,修改Centos模板内存最小限制为128M:

xe template-list name-label=CentOS\ 6\ \(32-bit\) params=uuid --minimal
#查看Centos模板uuid
xe template-param-set uuid=<uuid> memory-static-min=128MiB
#修改内存最小限制为128M
分类
最新文章
最近回复
  • ccc: 可以提供易调用openssl常用函数吗?
  • 夜未央: 在centos7 下面 貌似转换不了。有人遇到过么????
  • brian: 博主你好,请教一个问题。我使用fprobe进行将交换机流量转换成netflow时是没有问题的,...
  • 吴昊: 学习了,感谢博主分享
  • linhua: 只需配置 服务端 的接收端口随机化就行了, 发送端口 因为 连接追踪(conntrack)的缘...
  • Realm: 博主你好,按照你的教程设置了IP转发及SNAT:echo 1 > /proc/sys/net/...
  • Roki: 大神, 为什么我在make clean 就出错了呢 ?你能帮我看看吗 。。。474495758...
  • Duuge: 遇到相同的问题,但未能解决,请求帮助。1、遇到的问题:/target-i386_i486_uC...
  • carlo: 大哥,我觉得你的技术好牛逼!能加你QQ吗
  • lebron: Unknown package 'lrzsz'.Collected errors:* opkg...
页面执行耗时:0.0465秒。-->