При використанні стиснення (bzip2) архівів (tar) на багатопроцесорних машинах було помічено відсутн ість значного приросту швидкості стиснення. Наприклад однопроцесорний (Intel Xeon 3.2GHz) сервер показував практично ту ж швидкість обробки, що і набагато потужніший мультипроцесорний сервер (4х4 Intel Xeon 3.0GHz).
Картинка завантаженості 4 процесорної машинки при стисненні архіву:
Бачимо, що процес дуже ефективно (100%) використовує процесорний час. Але! — тільки ОДНОГО процесора, що чудово видно:
Прочитання man bzip2 не призвело до розуміння того, як же утилізувати інші процесорні ядра. Вихід же був знайдений у чудовій утиліті pbzip2 (parallel bzip2). Основні параметри запуску pbzip2 аналогічні материнській утиліті bzip2, за винятком специфічних для паралельної обробки — більш докладно у man pbzip2 🙂
Не зайвим буде, мабуть, зазначити, як же використовувати pbzip2 в зв’язці з архіватором tar:
tar -Ipbzip2 -cf arhiv_name.tar.bz2 folder_or_file_into_archiv
Процес роботи pbzip2:
Бачимо, що ВСІ процесори використовуються майже на 100%, що видає загальну завантаженість в 386% 🙂