首页 > 代码库 > 使用cgroup 限制进程的磁盘io
使用cgroup 限制进程的磁盘io
cat /etc/cgconfig.conf
#
# Copyright IBM Corporation. 2007
#
# Authors: Balbir Singh <balbir@linux.vnet.ibm.com>
# This program is free software; you can redistribute it and/or modify it
# under the terms of version 2.1 of the GNU Lesser General Public License
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it would be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# See man cgconfig.conf for further details.
#
# By default, mount all controllers to /cgroup/<controller>
mount {
cpuset = /cgroup/cpuset;
cpu = /cgroup/cpu;
cpuacct = /cgroup/cpuacct;
memory = /cgroup/memory;
devices = /cgroup/devices;
freezer = /cgroup/freezer;
net_cls = /cgroup/net_cls;
blkio = /cgroup/blkio;
}
group shard_0{
blkio{
blkio.throttle.read_iops_device="253:3 16000";
blkio.throttle.write_iops_device="253:3 16000";
blkio.weight="500";
}
}
group shard_1{
blkio{
blkio.throttle.read_iops_device="253:3 16000";
blkio.throttle.write_iops_device="253:3 16000";
blkio.weight="500";
}
}
blkio.throttle.read_iops_device 读iops
blkio.throttle.write_iops_device 写iops
253:3是设备的编号
比如我们要限制进程在flashcache上的iops
[root@test ~]# ls -l /dev/mapper/cachedev
lrwxrwxrwx 1 root root 7 Jan 25 21:16 /dev/mapper/cachedev -> ../dm-3
这里看到只是一个软连接,我们接着找
[root@test~]# ls -l /dev/dm-3
brw-rw---- 1 root disk 253, 3 Jan 25 21:16 /dev/dm-3
因此我们限制某个进程在 flashcache上的iops最高16000就 写成 253:3 16000
启动cgroup
[root@c3-b2c-dba-backend-mysql09 /]# service cgconfig restart
Stopping cgconfig service: [ OK ]
Starting cgconfig service: [ OK ]
然后就可以将进程id写进cgroup 对应的task了
[root@test shard_0]# pwd
/cgroup/blkio/shard_0
[root@test shard_0]# cat tasks
48554
339938
340404
340414
340487
340498
340547
340560
340568
340581
340587
340602
340608
340609
340624
340633
340650
340657
340659
340660
340669
340672
340675
340685
340687
340689
340690
340701
340708
340709
340710
340711
340712
340719
341151
341157
341158
341159
341160
341162
341171
341172
341178
341180
341186
341187
341192
341204
341212
341229
341231
341237
341245
341248
341249
341250
341251
341252
341253
341254
341255
341256
341257
341258
341259
341260
341261
341262
341263
341264
341265
341270
341273
341279
341284
341285
341286
341288
341294
341295
341296
341297
341298
341299
341300
341301
341307
341308
使用cgroup 限制进程的磁盘io