我正在尝试分析服务器上的堆转储,这些文件相当大(10-15 GB)。我在服务器上创建了这些文件,并想在我的计算机上分析它们,因此为了下载它们,我尝试使用 bzip 和 gzip 压缩它们。这两个程序始终生成无法再解压的损坏文件。
我使用的是块大小为 4 KiB 的 ext3,因此文件大小限制应为 2 TiB,因此对我而言无关紧要。我在 Ubuntu Jaunty 64 位服务器版本上使用 gzip 1.3.12 和 bzip 1.0.5,基本处于原始状态(仅添加了一些软件包,没有什么特别的)。
正在运行 RAID-1,但是没有报告同步问题或延迟。
转储是使用 jmap 创建的。
是否有某种特定类型的数据会导致这些程序阻塞?
尺寸有问题吗?
我可以尝试什么来了解更多信息或规避该问题?
答案1
如果有多个文件,请先尝试将它们放入 tar 存档中
tar czvf dumps.tar.gz file1 file2
或者用于 bzip 压缩
tar cjvf dumps.tar.bz2 file1 file2
在众多系统和文件系统上使用这两种方法我从未遇到过任何问题。
当然也适用于 1 个文件!
答案2
gzip 1.2.4 及更早版本在解压大于 4Gb 的文件时会出现问题(参见:http://www.gzip.org/#faq10)
根据 bzip2 的更新日志,在 1.0.0 版本之前,它似乎在处理较大的文件时也遇到了一些问题