Задача на собеседовании админу
Dec. 12th, 2013 10:50 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Придумал subj: как стандартными средствами в gnu уних/линух окружении
запустить на параллельное выполнение задачи, чтобы la не превышал какое-либо
значение. Например: есть каталог с тучей больших файлов, всех их надо
зипнуть или гзипнуть, задания можно запускать параллельно,
общий la не должен превышать 2.5.
пс. наверно пятничная задачка :)
запустить на параллельное выполнение задачи, чтобы la не превышал какое-либо
значение. Например: есть каталог с тучей больших файлов, всех их надо
зипнуть или гзипнуть, задания можно запускать параллельно,
общий la не должен превышать 2.5.
пс. наверно пятничная задачка :)
no subject
Date: 2013-12-12 08:53 pm (UTC)no subject
Date: 2013-12-12 09:05 pm (UTC)no subject
Date: 2013-12-12 10:30 pm (UTC)Если бы все упиралось только в проц - было бы LA=1. Но гзип не на ссд выест все дисковые иопсы и по цепочке тупить начнет всё. И вот как бы в этой ситуации придумать так, чтобы приоритет на иопсы от гзипа автоматически понижался чтобы LA не поднималось выше заданного - это действительно интересная задачка.
Вот только дешевле тупо просто вообще все перевести на ссд.
no subject
Date: 2013-12-12 11:19 pm (UTC)В такой ситуации gzip не выест ни IOPS, ни transfer speed. У Gzip никудышный по современным меркам алгоритм, скорость сжатия порядка 20 мб на ядро. Т.е. задача cpu-bound.
Но в условии не сказано, что крутится на машине. На непустой задаче мы вполне сможем упереться в IO, но, как я понимаю, загрузка всего лишь перейдет в графу wa, т.е. принципиально не важно, во что мы уперлись.
Можно попробовать слать гзипам стоп-конт, можно попробовать запустить процессы в cgroup и менять группе cpu.shares, но это linux specific/