LINUX.ORG.RU

Питонопроблемы

 


0

1

Что я хотел сделать: Я активно использую percona mysql в своих проектах, поэтому я написал обёртку для xtrabackup на питоне, чтобы красивенько бекапы в s3 складывать, потому что я могу.

Что получилось не так: База жирная, весит 129 гигабайт. Когда я сжимаю её при помощи tarfile из python, я получаю tar весом 121 гигабайт. Та же самая база при помощи pigz мало того, что ужималась всеми ядрами сервера, так ещё и весила всего 15 гигов.

Как я это делал? Вот так:

with tarfile.open(self.backup_dir + f'/{backupfile}.tar.gz', 'w:gz', compresslevel=9) as tar:
                    tar.add(f'{self.backup_dir}/backup/', arcname='backup')

Отсюда вытекают два вопроса:

  • Как мне использовать для сжатия все ядра? Чертовски медленно это всё выполняется, просто невыносимо.
  • Почему tarfile так херово сжимает? Как понять какой там алгоритм и какой алгоритм у pigz?

В целом я мог бы через subprocess дёргать pigz и пофигу, но интересно как сделать это через питон.

P.S. Кстати, вероятно проблема с сжатием в том, что раньше я бекапы не шифровал, а теперь шифрую. Пока проверю эту гипотезу.



Последнее исправление: u0000 (всего исправлений: 1)

«tar» это архиватор, сжимает «gz», если что (потому там и двойное расширение - сначала архивируем, т.е. упорядочиваем произвольную файловую структуру в единый файл архива, а потом уже сжимаем получившийся файл)
по делу мне написать нечего, просто инфа кстати о птичках

Virtuos86 ★★★★★
()

В целом я мог бы через subprocess дёргать pigz и пофигу

                       👆
vvn_black ★★★★★
()

Почему tarfile так херово сжимает?

Потому что он и не сжимает вообще, от слова совсем.

theNamelessOne ★★★★★
()

вероятно проблема с сжатием в том, что раньше я бекапы не шифровал, а теперь шифрую

Гыгы.

Вначале сожми , а потом шифруй.

А так, главная проблема питона в том, что он есть.

Psilocybe ★★★★
()
Последнее исправление: Psilocybe (всего исправлений: 2)

интересно как сделать это через питон.

Долго. Дольше, чем запускать подпроцесс с tar при одинаковых опциях.

вероятно проблема с сжатием в том, что

теперь шифрую

146%.

PhysShell ★★
()

бекапы в s3

теперь шифрую

Зачем? На S3 и есть своё шифрование. Вероятно более секурное чем твой велосипед.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

s3 принадлежит не мне, доверять я не могу

велосипед, к слову, тоже не мой, xtrabackup использует libcrypt

u0000
() автор топика
Ответ на: комментарий от pr849

Тем, что вшито в xtrabackup, его не я писал.

u0000
() автор топика

как можно сжать шифрованную инфу? она же белый шум. немедленно расшифруй обратно!

alysnix ★★★
()
Ответ на: комментарий от alysnix

она же белый шум. немедленно расшифруй обратно!

Вот, пожалуйста. Вечный двигатель на днях запатентовали, а теперь белый шум предлагают расшифровывать.

Господь, жги.

pr849
()
Последнее исправление: pr849 (всего исправлений: 1)
Ответ на: комментарий от pr849

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

разумеется такая куета не сжимается, ибо в ней нет корреляций.

alysnix ★★★
()
Ответ на: комментарий от alysnix

В отличие от некоторых, я юмор в твоём предыдущем сообщении без смайла понял. :)

pr849
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.