LINUX.ORG.RU

Распределение I/O в cgroups

 , ,


0

1

Ребят, недавно начал изучать cgroups. И я вот совсем не могу понять, в каких ситуациях нужен контроль ввода-вывода и как он вообще работает. Что значит если blkio.weight у одного процесса 500, а у другого 1000? Я понимаю конечно, что второго Mb/s будет больше, но собственно какая разница? Не лучше ли всем по максимуму использовать Mb/s? Приведите пожалуйста ситуацию где наглядно понятно зачем нужно это ограничивать.

P.S. И вот не совсем понятна такая вещь. Если один процесс успел завладеть контроллером ввода-вывода и ему нужно записать 50 Gb информации, а и есть второй процесс, которому нужно записать свои 50 Gb информации. Я ж правильно понимаю что быстрее запишет информацию процесс с большим приоритетом (nice), т.к. чем больше процессорного времени уходит на процесс, тем больше информации он успеет записать.

P.S.S Заранее спасибо.

Ответ на: комментарий от turboazot

Ну я так понял, что веса делят «дисковое время». В случае с однородной последовательной записью. Если диск может писать с 900 mb/s, то в твоём примере должна получиться скорость около 300/600. nice тут вообще сбоку - он за cpu отвечает.
Соответвенно, если в группу #1 добавить дятла, жрущего 1/6 iops однобайтовыми операциями, то throughput уже должен быть около 150/750. А если он начнёт жрать >1/3 iops - throughput первого будет стремиться к нулю, второго - к 900.
P.S. Я теоретик.

snizovtsev ★★★★★
()
Ответ на: комментарий от turboazot

Есть production сервер с, например, базой. Ты его бакапишь ночью, но бакап нагружает дисковую систему так, что база начинает тормозить даже для ночных нагрузок. С помощью этой штуки можно сделать приоритет бакапа меньше, чтобы он мешал базе.

P.S. Но, вообще, если ты не понимаешь, для каких задач нужна конкретная функциональность, то лучше просмотри ее поверхностно и не вникай. Просто будешь знать, что такое есть и чего позволяет добиться. Когда понадобиться (столкнешься с подходящими задачами) - вернешься и разберешься (возможно, к тому времени выйдет cgroups v3 и рулить им будет не systemd, а что-то другое).

anonymous
()
Ответ на: комментарий от anonymous

Спасибо, ребят. Пример с базой офигенный! До меня дошло.

Мне просто нужно готовиться к собеседованию. И такую вещь, как по мне, нужно обязательно знать для девопса

turboazot
() автор топика
Ответ на: комментарий от turboazot

девопса

спаси и сохрани от таких девопсов с эникейскими вопросами, хотя чего уж там, уже поздняк метаться и скоро всему ойти придёт вот такой вот аджайл со срамом.

anonymous
()

Не лучше ли всем по максимуму использовать Mb/s?

Процесс с весом даже в единицу получит всю пропускную способность.
Ограничения вступят в силу, когда начнёт писать второй.

Но это в теории, на практике никто последовательно не пишет, и распределение будет гулять.
С большой вероятностью 50Gb первый запишет тот, кто чья запись ближе к последовательной.

быстрее запишет информацию процесс с большим приоритетом (nice)

Если процесс упёрся в i/o, то с какой стати?

aidaho ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.