C组的管理过程中使用Linux的磁盘IO
Linux下的C组也可以限制和监控过程的磁盘IO。这个功能是由blkio子系统的实现。
有很多的事情blkio系统。但大部分是只读状态报告,和可写的唯一参数如下:
复制代码代码如下所示:
blkio.throttle.read_bps_device
blkio.throttle.read_iops_device
blkio.throttle.write_bps_device
blkio.throttle.write_iops_device
blkio.weight
blkio.weight_device
这些都是磁盘IO进行控制的过程。它清楚地分为两类,与throttle顾名思义,节流阀,限流有一定的价值。和weight它是将IO的重量。
throttle这个名字的四个参数,知道该怎么做。把blkio.throttle.read_bps_device限制字节每秒可以读取数。起点IO。
复制代码代码如下所示:
如果
{ 1 } 2750
Look at the Current IO with iotop
复制代码代码如下所示:
每日关注用户磁盘读写磁盘swapin IO >命令
2750是 4根66.76米/秒0 0%,68.53%
…
然后修改资源约束并将过程添加到控件组
复制代码代码如下所示:
回声'8:0 1048576> / / / C FS系统 / / / blkio.throttle.read_bps_device blkio Foo
回声2750 > / / / C FS系统 / / /任务blkio Foo
这里是主要的8:0设备编号和对应的块设备的设备号。你可以通过ls -看我的设备文件name.as
复制代码代码如下所示:
# ls - L / dev / SDA
BRW RW ----。1根盘8, 0 10月24日11:27 / dev / SDA
这里的8, 0是对应的设备号。所以,C组可以在不同的设备上不同的限制。再看看效果
复制代码代码如下所示:
每日关注用户磁盘读写磁盘swapin IO >命令
2750是 4根989.17 K s 0 0%,96.22%
…
可以看出,阅读过程中,每一秒都是减少到大约1MB。释放限制,写如8:0 0的文件;
然而,需要注意的是,这种方法对于采样间隔中产生的大量IO是无用的。
再看看blkio.weight,blkio的节流和重量的方式类似于定额与股CPU子系统。一种是绝对限制,另一种是相对限制,在不忙的情况下可以充分利用资源。重量值的范围在10到1000之间。
测试的重量是一个小麻烦,因为它不是一个绝对的界限,它将由缓存文件系统的影响。如果在虚拟机测试,虚拟机关闭我用VirtualBox在主机缓存。如果你想测试读IO,影响艾奥先生,一个大文件的几个G, / / / file_1 TMP,TMP / file_2,可用于在DD.建立两个砝码
复制代码代码如下所示:
#回声500 > /系统/ FS / C / blkio / / blkio.weight Foo
#回声100 > /系统/ FS / / / C blkio酒吧/ blkio.weight
在测试之前清除文件系统缓存,以免干扰测试结果
复制代码代码如下所示:
同步
回声3 > / proc / / / drop_caches VM系统
在这两组IO测试结果产生与弟弟。
复制代码代码如下所示:
# cgexec Gblkio:fooDD如果= / / file_1 TMP = / dev /空
{ 1 } 1838
# cgexec Gblkio:酒吧DD如果= / / file_2 TMP = / dev /空
{ 2 } 1839
或使用iotop见效果
复制代码代码如下所示:
每日关注用户磁盘读写磁盘swapin IO >命令
1839 / 4根48.14 M / S 0 B / S 0% 99.21% DD如果= / / file_2 TMP = / dev /空
1838 / 4根223.59 M / S 0 B / S 0% 16.44% DD如果= / / file_1 TMP = / dev /空
读取的字节每秒两进程数是不断变化的,但总的趋势仍然是1:5,随着体重proportions.blkio.weight_device设定一致的是子装置。写作时,加在它前面的设备号。
有许多统计项目的blkio子系统
blkio.time
每个设备的IO访问时间,单位毫秒
blkio.sectors
每个设备的扇区数或出扇区数
blkio.io_serviced
各种类型的IO操作数中的每个设备,实现读、写、同步、异步、总
blkio.io_service_bytes
每个类型IO交换器或每个设备的字节数。
blkio.io_service_time
在每个设备中执行的每一种IO时间,单位微秒
blkio.io_wait_time
每个设备中每个IO类型的队列等待时间
blkio.io_merged
每个设备类型的合并的IO请求数
blkio.io_queued
每个设备中IO类型的数量请求当前队列的数目。
使用这些统计数据可以更好地计算和监视流程中的IO情况
使用
复制代码如下:1 > blkio.reset_stats回声
你可以清理所有的统计数字。