[РЕШЕНО]Чем лучше сжимать ядро и инитрамфс?

red
ага, а если у тебя, к примеру, скорость чтения с начала диска не фрагментированного файла будет сильно отличатся от скорости чтения в конце диска фрагментированного файла, и эта погрешность может быть сопоставима по скорости распаковки данного файла, а это уже будет оказывать существенное влияние на оценку полученных данных.
ну в относительном значении мб, в абсолютном никак не будет влиять...
red, ну как тебе еще объяснить?
вот представь, у тебя на диске 1 000 000 000 разнообразных файлов.
и если ты посчитаешь среднюю скорость считывания 1000 раз по 1 000 000 файлов из рандомных частей диска, то в среднем, скорость считывания будет одинаковой.
но если считаешь с начала и с конца диска файлы, то конечно разница в скорости будет 2 раза.. но это не важно в статистических расчетах! по тому что это всего 2 файла из 1 000 000 000.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja, safocl попробую пояснить на примере
к примеру, возьмем данные что выложил safocl:
Результат gzip: сжатие 39.121676%, время компр/декомпр 1.6758/0.2535 сек.
Результат bzip2: сжатие 37.082033%, время компр/декомпр 3.2800/1.3209 сек.
Результат lzma: сжатие 30.072574%, время компр/декомпр 13.4249/0.7492 сек.
Результат xz: сжатие 30.057451%, время компр/декомпр 13.4651/0.7148 сек.
Результат lzop: сжатие 51.294122%, время компр/декомпр 0.1364/0.2000 сек.
Результат lz4: сжатие 52.542953%, время компр/декомпр 0.1928/0.1811 сек.

Если предположить что скорость диска у нас "усреднена и мало влияет" то по всему выходит что лучше всего использовать lz4 у которого 0.1811 сек
Попробуем сравнить компрессию lz4(1 место по скорости декомпрессии) и gzip(3 место)

Есть без компрессии initramfs-linux-fallback.img = 62M

lz4~53% = 62*53/100 ~ 33МБ
gzip ~39% = 62*39/100 ~ 24МБ

Допустим скорость считывания с диска будет 80MБ/c в начале и 160МБ/с в конце.

Далее для простоты будем округлять до сотых.
CPU тратит на декомпресию (взял данные выше, не совсем правильно но общий посыл думаю будет понятен)
lz4 = 0.18c
gzip = 0.25c

T = [время декомпрессии + время чтения файла с диска]
Тн - в начале диска
Тк - в конце диска

lz4)
Tн = 0.18с + 33/80 = 0.18 + 0.41 = 0.59с
Tk = 0.18с + 33/160 = 0.18 + 0.21 = 0.39с

среднее = (0.59+0.39)/2= 0.49

gzip)
Tн = 0.25с + 24/80 = 0.25 + 0.3 = 0.55с
Tк = 0.25с + 24/160 = 0.25 + 0.15 = 0.4с

среднее = (0.55 + 0.4)/2 = 0.48
----------------------------------------------

Получается что gzip занимающий третье место в нашем хит-параде будет практически не уступать lz4 на дальней(0.39-0.4=-0.01с) и средней дистанции(0.48-0.049=-0.01с), но он даже умудряется стать бесспорным лидером на ближней(0.59-0.55=+0.04).
Вот и выходит что если раздел /boot установлен в начале диска то посмотрев результаты вышеизложенной программы можно прийти к неправильным выводам и вместо оптимизации выстрелить себе в ногу.

п.с.
писал ночью и по ошибке немного напутал написав что - скорость считывания с диска будет 80MБ/c в начале и 160МБ/с в конце
будет наоборот, в начале скорость 160МБ/с а в конце 80МБ/с, то есть в расчетах нужно поменять местами Тк и Тн, но общий смысл будет тот же, только gzip получает преимущество если /boot расположен не в начале а ближе к концу диска.
nafanja
но если считаешь с начала и с конца диска файлы, то конечно разница в скорости будет 2 раза.. но это не важно в статистических расчетах! по тому что это всего 2 файла из 1 000 000 000.
да, но только в том случае если учтены все факторы которые достаточно сильно могут влиять на выборку
из примера выше
если брать только скорость декомпрессии то lz4(0.18c)-gzip(0.25c)=-0.07с
а если еще учитывать скорость чтения с диска то lz4-gzip=[-0.01:+0.04]c
red
Вот и выходит что если раздел /boot установлен в начале диска то посмотрев результаты вышеизложенной программы можно прийти к неправильным выводам и вместо оптимизации выстрелить себе в ногу.
мой тест не учитывает скорость диска! он тестит только скорость алгоритмов сжатия.
и еще повторю раз, ты прав, что скорость диска нужно учитывать, но это задача уже других тестов!

а вообще посчитал на своих данных

с +/- 5% я не угадал (((

а вот это если сравнить флешку с 10м/с и ссд 400м/с

тут уж можно делать выводы что лучше использовать
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
а вообще посчитал на своих данных

с +/- 5% я не угадал (((
я хз как вы там так считаете, но по вашим данным получается приблизительно следующее

Откуда выходит что отклонение( ((чтением с диска + декомпрессия)/(просто декомпрессия))*100 - 100% ) даже среднее значение может доходить до 50%(для lxmz), а при граничных условиях переваливать и за 1000%
Первое место по скорости декомпрессии у lzop 0,4988c, но выходит что если в начале диска то лучше использовать gzip, а еще лучше в данном случае вообще не использовать компрессию :)

nafanja
мой тест не учитывает скорость диска! он тестит только скорость алгоритмов сжатия.
и еще повторю раз, ты прав, что скорость диска нужно учитывать, но это задача уже других тестов!
я здесь и не спорю, просто мы наконец думаю разобрались что скорость чтения файла с диска вносит существенное влияние на оценку выбора компрессора для "ядра и инитрамфс"
red, посмотри на свою табличку,
ты ошибся во времени чтения в конце!
не может файл размером в 15м со скоростью 80 м/с считываться больше 5 сек. ))) за 5 сек считается 400м
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
не может файл размером в 15м со скоростью 80 м/с считываться больше 5 сек. ))) за 5 сек считается 400м
да, сори, не заметил, попутались во второй колонке числитель и знаменатель в формуле, исправил
также исправил последнюю табличку, перепутал просто чтение с просто декомпрессией
[(чтением с диска + декомпрессия)/(просто чтение))*100 - 100% ] --> [ (чтением с диска + декомпрессия)/(просто декомпрессия))*100 - 100% ]

Ребят, вы скажите. Если достаточно места- сжатие нужно или нет?
У меня:
COMPRESSION="cat"
Насколько моего разумения хватает, то без сжатия всегда быстрее, т.к. на распаковку/упаковку) время не тратится.
Morisson, про сжатие можно забыть если
1) у тебя ssd и достаточно места
2) если у тебя достаточно быстрый HDD и /boot находится ближе к началу диска

в остальных случаях нужно уже смотреть, все зависит от скорости диска(влияет на скорость считывания файла) и мощности CPU(влияет на скорость распаковки)
 
Зарегистрироваться или войдите чтобы оставить сообщение.