找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 20|回复: 2

使用 ionice 限制 Xen 虚拟机磁盘 IO

[复制链接]

218

主题

3097

回帖

6900

积分

论坛元老

积分
6900
发表于 2013-8-10 13:55:09 | 显示全部楼层 |阅读模式
作为 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)[ol]
  • # 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复制代码找到进程号后我们就可以 ionice 了[ol]
  • # ionice -p 25089 -c 2 -n 7[/ol]复制代码使用 ionice 之前查一下帮助文件,-c 是指定调度类型,这里选择的是 2,best-effort;-n 指定调度优先级,0 最高,7最低;-p 是指定进程号
    "
    ionice 把磁盘 IO 调度分成三类:
    "

    额,如果太过分,我们就把这个进程的调度改成 idle,这样会极大降低这个虚拟机的 IO,虚拟机只能保持基本可用状态,不推荐~[ol]
  • # ionice -p 25089 -c 3[/ol]复制代码转自 http://www.vpsee.com/2013/06/using-ionice-to-mediate-xen-vm-disk-io/
  • 回复

    使用道具 举报

    574

    主题

    8173

    回帖

    1万

    积分

    论坛元老

    积分
    18116
    发表于 2013-8-10 14:41:21 | 显示全部楼层


    采集户、磁盘党会恨死你的
    回复

    使用道具 举报

    0

    主题

    396

    回帖

    798

    积分

    高级会员

    积分
    798
    发表于 2013-8-10 14:47:24 | 显示全部楼层
    有益大众非常的好
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-1-16 07:48 , Processed in 0.017592 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表