Hirdetés

Új hozzászólás Aktív témák

  • Frawly
    veterán

    Ez a tar közbeiktatása a Unix-filózófia miatt, hogy egy tömörítő csak egy dolgot tudjon, csak tömöríteni, és ne kelljen tudnia fájlrendszerfüggő, és jogosultságkezelő megoldásokat lekezelnie, a tar ezeket a feladatokat leveszi a tömörítő válláról. Amúgy most nézem, hogy nem csak az xz, hanem a zsdt is tud már több szálon dolgozni, nem kell parallel változatot feltenni, -T0 kapcsolóval megpróbálják az összes magot használni. Az xz LZMA tömörítést használ (mint a 7-zip), emiatt jobban tömörít, de lassabb. A zstd kevésbé tömörít jól (ez a Facebook által kifejlesztett Zstardard tömörítést használja), de iszonyat gyors, és a kevésbé tömörít jól kitételt úgy kell érteni, hogy alig marad el néha az xz-s tömörítési foktól. Szóval így tömöríts:
    tar -I 'xz -T0' -cvf tömörítvénynév.tar.xz forrásmappa
    tar -I 'zstd -T0' -cvf tömörítvénynév.tar.zst forrásmappa

    Ha nem akarsz ilyen hosszút fejben tartani, akkor lehet rá Bash-aliast csinálni, a ~/.bashrc-be:
    alias tomorit="tar -I 'zstd -T0' -cvf"

    Ha annyira nem akarod ezt a tar-os megközelítést, akkor tényleg az marad, hogy vagy a zip (zip csomag) vagy 7z (p7zip csomag) valamelyikével tömörítesz, de egyik sem kezeli rendesen a linuxos jogosultságokat és attribútumokat, így rendes archiválásra nem jók, viszont nem igénylik a tar-t. Ezen felül a zip elég gyengén tömörít (és nem támogat több szálat), gzip-nek felel meg (igazából opensource pkzip-klón), a 7z már jobban, és az tud többszálúságot (igaz csak 2-4 szálat tud kezelni) és solid archivumot, mikor egy fájlként tömöríti, de ilyenkor lényegében ugyanúgy működik, mint a tar+egyéb tömörítő megoldás, elveszted azt az előnyét, hogy windowsos logika mentén működik.

    Ott van még a rar, de annál megint ugyanaz az elakadt lemez forog: windowsos logika, de nem kezeli a linuxos jogosultságokat, így archiválni nem jó, plusz proprietary formátum, plusz tud solid tömörítést, aminél megint elveszik az előnye a nem-tar-os megoldásokhoz képest.

    A példáimban egyszeres idézőjelben meg tudsz adni a tömörítőnek más kapcsolókat is a -T0 mellé, pl. tömörítési fok, ennek a mikéntjét a man tömörítő kimenetéből tudod meg. Bár a default tömörítési fokot éri meg legjobban használni, mert annak van a legjobb tömörítési fok / tömörítési idő arányszáma, a nagyon erős tömörítése fokozatok gyakran aránytalanul lassúak, és a gyakorlatban nem tömörítenek annyival jobban, hogy számítson. Régen, mikor kisfloppyra meg CD-re kellett mindent rányomorgatni, meg netsávszélt kell kímélni, akkor fontos lehet a legjobb tömörítési fok, de sima archiválásnál nincs nagy jelentősége, ez nem csak az álltalános tömörítőknél van így, hanem pl. a lossless audiotömörítőknél is, pl. flac. A legextrémebben tömörít a PAQ8 vagy ZPAQ aktuálisan legújabb variánsa, de ezek maximum fokozaton több órán, több napon keresztül tömörítik sok giga memóriát felhasználva azt, amit a normál tömörítők perceken belül betömörítenek, és cserébe csak néhány százalékkal tömörítenek jobban, ergo nem éri meg, mert csak a saját idejét őrli fel vele az ember, csak ilyen elméleti versenyekre jók. Épp ezért favorit most a legtöbb embernél a zsdt, erre áll át minden disztró majd, mert ugyan pár %-kal rosszabbul tömörít, de olyan villámgyors, mintha tömörítetlen adattal dolgozna.

    A példáimban csak betömörítést írtam, de kitömöríteni is így kell, csak a c kapcsoló helyett x kapcsoló kell.

    Én a részemről a zstd-t használom, általános használatnál 19-es fokozaton, ha gyors tömörítés kell, akkor 3-as fokozaton, ha a tömörítési fok nem számít, csak a sebesség, pl. kernelimage, akkor az 1-es fokozatot preferálnám (de a kernel konfigban ezt nem lehet megadni, de gondolom 1-3-as fokozat valamelyikét használja).

    A 22-es fokozat a maximum zstd-nél, de az nagyon lassú, lassabb, mint az xz maximum fokozata. 19-es fokozaton 2,5× gyorsabb az xz-nél, és csak 1-2%-kal tömörít rosszabbul, mint a maximum tömörítéses xz. A legideálisabb a 15-ös tömörítési fokozat nálam, az 8× gyorsabban tömörít a maximális zx-nél, de 12%-kal rosszabbul. De nem rossz a default 3-as tömörítési fok se, az 120× (!!!) tömörít be gyorsabban, de 25%-kal rosszabbul. A leggyorsabb, 1-es zsdt fokozat 167× tömörít gyorsabban, de 31%-kal rosszabbul. Ezek átlagos számok, egy 560 megás angol szótár tömörítésével tesztelve. Természetesen a „sima” linuxos zip-et veri keresztben-hosszában, tömörítési sebességre és tömörítési fokban is.

    Párhuzamosításra viszont nem a legideálisabb, mivel hiába adom meg, hogy 8 szálon tömörítsen, jellemzően 4-5 szálat használ, a tömörítés vége felé már csak 2 szálat, majd 1-et. A 2 legfelsőbb ultra tömörítési fokozaton már csak 2 szálat használ, a tömörítés vége felé már csak 1-et. De a 7-zip is ugyanígy viselkedik, nem mértem le, de feltehetőleg az xz is. Tehát azt nem lehet elvárni egyik linuxos tömörítőtől sem, hogy állandóan kitekerik az összes prociszálat. Igaz ez a gcc-re is, ott is hiába adjuk meg a make-nek, hogy hány job-ot toljon párhuzamosan, még nagy projekteknél is fellép egyfajta limit, mikor nincs annyi párhuzamos fordítani való, hogy pl. 64+ szálat kihajtson. Igaz ez átlag konzumer szinten nem nagy korlát, mert az átlag konzumer proci kb. 4 szálat tud nagy átlagban. Mondom átlagban, van, akinek 16-ot, van, akinek csak 2-őt, a 4 az egy erős átlag, ami figyelembe veszi a még használatban lévő, de nem teljesen irreleváns procikat (régi Core 2 Duo/Quad vagy régi genes Core i, vagy Phenom / A / FX).

    De flac-nál pl. a default 5-ös tömörítési fokot használom, mert nagyon gyors, és csak alig pár százalékkal tömörít rosszabbul, mint a sokszorosan lassú 8-as fokozat. Az is igaz, hogy a flac csak egy szálat tud használni maximum.

    Az is igaz, hogy baromi ritkán tömörítek befelé, inkább csak kifelé, utóbbit is inkább vifm-et használva, ami meg fuse modulokat használ kibontásra. Mondjuk ma véletlenül többször is, mivel egy 96 kHz-es lossless flac albumot benyomtam 48 kHz-es 512 kbps-os opus-ba, meg most a zstd-t, xz-t, zip-et méregettem sebességre, tömörítési fokra, de ilyesmik szökőévente egyszer fordulnak elő.

Új hozzászólás Aktív témák