Почему Сцилла не использовала cgroup blkio для планировщика ввода-вывода? - PullRequest
2 голосов
/ 22 июня 2019

Недавно я нашел статью .

И я заметил в статье, что планировщик ввода-вывода в scylla использует более простой контроль трафика для ввода-вывода, который просто учитывает task_quota, iops и io_bandwidth.

К моему знанию, cgroup, blkio также использует эти три фактора для планировщика ввода-вывода.

Меня смущает, в чем разница между планировщиком ввода-вывода scylla и cgroup blkio? Почему Scylla не использовала cgroup blkio напрямую?

1 Ответ

4 голосов
/ 23 июня 2019

Группы управления Linux и уровень Linux blk имеют планировщик. Основная проблема - гранулярность. В Linux гранулярность основана на процессах. Этого недостаточно для Scylla, который является многопоточным приложением. Более того, в Scylla есть много типов производителей вычислений и ввода-вывода, некоторые чувствительны к задержке (например, операции чтения и записи), некоторые являются фоновыми операциями и могут быть выполнены позже (например, сжатие, потоковая передача и восстановление).

Linux cgroups и blkio не могут сделать различие между ними, и только пользовательское пространство Scylla, которое помечает их, может быть компонентом, который будет планировать и ставить их в очередь.

Больше информации в этом блоге: https://www.scylladb.com/2018/04/19/scylla-i-o-scheduler-3/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...