ocehb: (Default)
[personal profile] ocehb
Придумал subj: как стандартными средствами в gnu уних/линух окружении
запустить на параллельное выполнение задачи, чтобы la не превышал какое-либо
значение. Например: есть каталог с тучей больших файлов, всех их надо
зипнуть или гзипнуть, задания можно запускать параллельно,
общий la не должен превышать 2.5.

пс. наверно пятничная задачка :)

Date: 2013-12-12 08:53 pm (UTC)
From: [identity profile] tarkhil.livejournal.com
Ну вообще-то один гзип дает LA=1...

Date: 2013-12-12 10:30 pm (UTC)
From: [identity profile] knutov.livejournal.com
Не все так просто :)

Если бы все упиралось только в проц - было бы LA=1. Но гзип не на ссд выест все дисковые иопсы и по цепочке тупить начнет всё. И вот как бы в этой ситуации придумать так, чтобы приоритет на иопсы от гзипа автоматически понижался чтобы LA не поднималось выше заданного - это действительно интересная задачка.

Вот только дешевле тупо просто вообще все перевести на ссд.

Date: 2013-12-12 11:19 pm (UTC)
From: [identity profile] nponeccop.livejournal.com
По условию задачи у нас гзип с тучей больших файлов и не 100500 ядер, а 2-3.

В такой ситуации gzip не выест ни IOPS, ни transfer speed. У Gzip никудышный по современным меркам алгоритм, скорость сжатия порядка 20 мб на ядро. Т.е. задача cpu-bound.

Но в условии не сказано, что крутится на машине. На непустой задаче мы вполне сможем упереться в IO, но, как я понимаю, загрузка всего лишь перейдет в графу wa, т.е. принципиально не важно, во что мы уперлись.

Можно попробовать слать гзипам стоп-конт, можно попробовать запустить процессы в cgroup и менять группе cpu.shares, но это linux specific/





Profile

ocehb: (Default)
ocehb

January 2021

S M T W T F S
     12
345 6789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 8th, 2025 12:28 pm
Powered by Dreamwidth Studios