Dlaczego bzip2 i gzip uszkadzają duże zrzuty plików i czy mogę je obejść?

3

Próbuję analizować zrzuty sterty z serwera, które są dość dużymi plikami (10-15 GB). Tworzę te pliki na serwerze i chcę je analizować na moim komputerze, więc aby je pobrać, próbowałem je skompresować zarówno za pomocą bzip, jak i gzip. Oba programy konsekwentnie wytwarzają uszkodzone pliki, których nie można już rozpakować.

Używam ext3 z blokiem o wielkości 4 KiB, więc limit wielkości pliku powinien wynosić 2 TiB, a zatem nie ma znaczenia w moim przypadku. Używam gzip 1.3.12 i bzip 1.0.5 na Ubuntu Jaunty, 64-bitowej wersji serwera, w przeważającej części waniliowej (dodałem tylko niektóre pakiety, nic szczególnego).

Działa RAID-1, ale nie zgłasza problemów z synchronizacją ani opóźnień.

Zrzuty są tworzone za pomocą jmap.

Czy istnieje jakiś szczególny rodzaj danych, który powoduje, że programy te dławią się?

Czy rozmiar jest problemem?

Co mogę spróbować dowiedzieć się więcej lub obejść problem?

Hanno Fietz
źródło
Czy przeprowadzasz dekompresje testowe na tym samym komputerze, na którym kompresujesz?
Paul
Czy gzip i / lub bzip2 kończą się pomyślnie? (plik gzip; echo $?) W którym momencie plik jest uszkodzony, przed czy po transferze? (To znaczy, jeśli spróbujesz spakować / bunzip2 plik, w którym został utworzony, czy jest już uszkodzony na tym etapie?)
Kjetil Jørgensen
Jakich wersji gzip i bzip2 używasz? (--version) Najwyraźniej starsze wersje gzip miały problemy z dekompresją plików większych niż 4 Gb. gzip.org/#faq10
Kjetil Jørgensen
Czy zabrakło Ci miejsca na pliki pośrednie?
pjc50,
@Paul - Tak, jestem z -tflagą.
Hanno Fietz

Odpowiedzi:

4

Jeśli jest to więcej niż jeden plik, spróbuj najpierw umieścić je w archiwum tar

tar czvf dumps.tar.gz file1 file2

lub do kompresji bzip

tar cjvf dumps.tar.bz2 file1 file2

Nigdy nie miałem problemów z żadną metodą na wielu systemach i systemach plików.

Oczywiście zadziała również dla 1 pliku!

Steve
źródło
Wydaje się działać. Dziwne. Czy masz pojęcie, dlaczego tak się dzieje?
Hanno Fietz
Mogę tylko zgadywać, że przekazanie go przez tar rozwiązuje jakiś problem z synchronizacją. Nie mam końca kłopotów z kompresowaniem w różnych systemach NFS w pracy, a jednak tar działa za każdym razem. W moim przypadku systemy plików znajdują się w ponad połowie planety, ale miałem też problemy z gzipem w domu, i to wszystko lokalnie. Po prostu teraz domyślnie podkręcam.
Steve,
2

gzip w wersji 1.2.4 i starszych ma problemy z dekompresją plików większych niż 4 Gb (patrz: http://www.gzip.org/#faq10 )

Według dziennika zmian bzip2 wydaje się, że miał on również problemy z większymi plikami przed wersją 1.0.0

Kjetil Jørgensen
źródło
1
To jest przydatna informacja. Moje wersje są jednak wyższe. (Zmienię je w oryginalne pytanie)
Hanno Fietz