为什么Scylla不将cgroup blkio用于I / O调度程序?

时间:2019-06-22 10:14:31

标签: io scheduler scylla

最近我发现了一个article

我在文章中注意到,scylla中的I / O调度程序使用了更简单的I / O流量控制,只考虑了任务task_quotaiopsio_bandwidth。 / p>

据我所知,cgroupblkio还将这三个因素用于I / O调度程序。

我很困惑,scylla I / O调度程序和cgroup blkio有什么区别?为什么scylla没有直接使用cgroup blkio?

1 个答案:

答案 0 :(得分:4)

Linux控制组和Linux blk层确实具有调度程序。主要问题是粒度。在Linux中,粒度是基于过程的。对于多线程应用程序Scylla来说,这还不够好。此外,在Scylla中,我们有许多类型的计算和IO生产者,有些是对延迟敏感的(如读写操作),有些是后台操作,可以稍后执行(如压缩,流式传输和修复)。

Linux cgroups和blkio无法区别它们,只有标记它们的Scylla用户空间才可以成为计划和排队它们的组件。

此博客上的更多数据:https://www.scylladb.com/2018/04/19/scylla-i-o-scheduler-3/