7zip в Solaris

20.08.2010

Оказывается, что помимо стандартных compress, zip, gzip ,bzip2 в Solaris 10 входит еще и 7zip, что не может не радовать.  Chapter 4 What’s New in the Solaris 10 5/08 Release

# 7z -?

7-Zip 4.55 beta Copyright (c) 1999-2007 Igor Pavlov 2007-09-05
p7zip Version 4.55 (locale=C,Utf16=off,HugeFiles=on,256 CPUs)



Usage: 7z [...] [...]
[<@listfiles...>]
...
# which 7z
/usr/bin/7z
# grep /usr/bin/7z /var/sadm/install/contents
/usr/bin/7z f none 0555 root bin 410828 28364 1203706028 SUNWbzip
/usr/bin/7za f none 0555 root bin 1320752 30201 1203706028 SUNWbzip
/usr/bin/7zr f none 0555 root bin 793776 31270 1203706028 SUNWbzip

Что характерно, находится в том же пакадже, что и bzip2 (кстати, может паковать в любой из далее перечисленных архивов : 7z, zip, gzip, bzip2, tar)

К сожалению, пакует только в один поток, во всяком случае в манах не описано как запустить многопоточность, а то процессоров навалом — нужно их нагружать, обидно. Бинарники под Solaris идут под версию 4.5 (на sunfreeware — 4.6), а сырцы уже версии 9, может там многопоточность реализована.

UPDATE: 20100823
Волшебные ключики для multithreading : -mmt=16 -m0=bzip2 ( работает только для bzip2 и lzma алгоритмов )
Результат экспериментов на 8-ми процессорном SunFire 880:
# rm /tmp/test.7z ;time 7z a -t7z -m0=bzip2 -mmt=off -bd /tmp/test /var/sadm/patch/ >/dev/null
real 0m12.160s
user 0m11.949s
sys 0m0.118s
# rm /tmp/test.7z ;time 7z a -t7z -m0=bzip2 -mmt=2 -bd /tmp/test /var/sadm/patch/ >/dev/null
real 0m6.866s
user 0m12.163s
sys 0m0.136s
# rm /tmp/test.7z ;time 7z a -t7z -m0=bzip2 -mmt=4 -bd /tmp/test /var/sadm/patch/ >/dev/null
real 0m3.978s
user 0m12.005s
sys 0m0.159s
# rm /tmp/test.7z ;time 7z a -t7z -m0=bzip2 -mmt=8 -bd /tmp/test /var/sadm/patch/ >/dev/null
real 0m2.944s
user 0m12.192s
sys 0m0.223s
# rm /tmp/test.7z ;time 7z a -t7z -m0=bzip2 -mmt=16 -bd /tmp/test /var/sadm/patch/ >/dev/null
real 0m2.912s
user 0m13.039s
sys 0m0.357s
# rm /tmp/test.7z ;time 7z a -t7z -m0=bzip2 -mmt=32 -bd /tmp/test /var/sadm/patch/ >/dev/null
real 0m3.014s
user 0m12.889s
sys 0m0.574s

Оптимальное число потоков для этого сервера — 16 ( проверка еще на нескольких серверах — показывает, что параметр -mmt=16 будет лучшим выбором )

Интересное замечание в манах:
Backup and limitations
DO NOT USE the 7-zip format for backup purpose on Linux/Unix
because :
- 7-zip does not store the owner/group of the file.

On Linux/Unix, in order to backup directories you must use
tar :
- to backup a directory : tar cf - directory | 7za a -si directory.tar.7z
- to restore your backup : 7za x -so directory.tar.7z | tar xf -

Ссылки в тему:
Chapter 4 What’s New in the Solaris 10 5/08 Release
7zip
Source of p7zip

3 комментария на запись “7zip в Solaris”

  1. AnViar пишет:

    >> в манах не описано как запустить многопоточность
    # 7z -m em=[off | on | {N}]
    Взял тут: http://www.bugaco.com/7zip/MANUAL/switches/method.htm

  2. solarisblog пишет:

    Интересно, star появиться когда-нибудь?

  3. Куб пишет:

    Спасибо, очень интересный пост. Люблю 7-zip, не знал, что он есть в Solaris, просто в голову не пришло проверить!