读书频道 > 系统 > linux > Linux内核精髓:精通Linux内核必会的75个绝技
使用Block I/O控制器的前提条件
2013-02-19 16:46:22     我来说两句 
收藏    我要投稿   
经过近20年的发展,Linux操作系统已经成为当今最成功的开源软件之一,使用广泛,影响深远。随着Linux操作系统功能的不断丰富和完善,Linux内核的源代码也从最初的几万行增加到如今的数百万行,庞大无比,对于Lin...  立即去当当网订购

Block I/O控制器是Cgroup的子系统之一,是作为I/O调度程序之一的CFQ的一部分安装的。因此,使用Block I/O控制器时,必须使用启用了下列config选项编译的内核。
CONFIG_BLK_CGROUP
CONFIG_CFQ_GROUP_IOSCHED

确认Cgroup支持

首先确认运行中的内核是否支持Cgroup和Cgroup子系统Block I/O控制器。如果有/proc/cgroups,运行中的内核就可以支持Cgroup。/proc/cgroups的内容如下。
$ cat /proc/cgroups
    subsys_name hierarchy num_cgroups enabled
    blkio    1  1  1

只要subsys_name列显示了blkio,且enabled为1就没问题。如果看不到blkio,就需要重新编译内核。如果enabled为0,则启动时的内核命令行应当如下所示。
cgroup_disabled=blkio

这时需要修改/boot/grub/grub.conf等,将上述指定从内核命令行中删除,并重新启动。

确认CFQ支持

接下来确认是否能够将CFQ作为I/O调度程序使用。例如,想要查看块设备sdb中可以使用的I/O调度程序时,需要执行下列命令。
$ cat /sys/class/block/sdb/queue/scheduler
   noop deadline [cfq]

可以使用的I/O调度程序会显示出来,其中当前选择的调度程序已加上了方括号。如果显示cfq则没问题;如果不显示就需要启用CFQ,重新编译内核。

注意事项:设备种类不同,scheduler文件的内容也不同。I/O调度程序是对一般的块设备使用的,因此,例如在loopback设备loop0等中不会显示cfq。请对sda、sdb等一般的块设备进行确认。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:HACK #13 使用Block I/O控制器设置I/O优先级
下一篇:尝试使用Block I/O控制器
相关文章
图文推荐
3.3.6 GNOME的软件管
3.3.5 GNOME的文件管
3.3.4 GNOME的窗口管
3.3.3 收藏夹和快捷
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站