7Zip 在 Linux 上的解压速度太慢

7Zip 在 Linux 上的解压速度太慢

在 linux xfs 上解压带有许多小文件的 7zip,解压速度非常慢。

我的测试系统环境。

  • 系统 1:XenServer 上的 2vCore/4GB CentOS 6.5 64 位客户机。
  • 系统 2:XenServer 上的 2vCore/4GB Windows 2012 客户机。

大型小文件创建脚本

#!/bin/bash

for i in {1..100000}
do
    dd if=/dev/zero of=./dmp/dd$i.dmp bs=1K count=4
done

好的。我在 dmp 目录中获得了 100,000 个 4KB 文件。然后我用 xfs 格式化了 /testfs。

测试

Compression Time on System1 :
   # time 7za a dmp.7z ./dmp     --> real   0m27.518s
Extraction Time on System1: 
   # time 7za x dmp.7z -o/testfs --> real   9m5.420s
   - 7za use only single core.
   - Dirent system call use most of the CPU time.
Extraction Time on System2:
   - around 25s
   - 7za use multi-core.

我的问题

  1. 虽然系统2使用多核,系统1使用单核,但结果相差这么大,我觉得不可靠。我该如何解释呢?

  2. 如果我在 Linux 上使用 xfs 提取 7zip 文件,如何加快速度?有什么想法吗?

提前致谢。

答案1

我遇到了同样的问题,解决方法是升级 7z。在 Ubuntu 20.04 LTS 上,您7z获得的apt install是 2016 年的。相反,请从官方网站

对于同一台服务器上包含 60k 个小文件的同一个档案,我将时间从 8 分钟缩短到了 6 秒(!)。

答案2

以下是我为将 Ubuntu 22.04 中的 Nautilus 和 Archive Manager (file-roller) 更新为使用 7-Zip 22.01 所做的事情:

下载https://7-zip.org/a/7z2201-linux-x64.tar.xz

在终端(Ctrl-Alt-T)中复制并粘贴以下命令:

sudo apt-get install p7zip-full
sudo 7z e 7z2201-linux-x64.tar.xz 7z2201-linux-x64.tar
sudo 7z e -o/usr/lib/p7zip -y 7z2201-linux-x64.tar 7zz 7zzs
sudo echo exec /usr/lib/p7zip/7zz '"$@"' > 7z
sudo mv 7z /bin/7z
sudo chmod ugo+rx /usr/lib/p7zip/7zz /usr/lib/p7zip/7zzs /bin/7z

相关内容