7-Zip fica mais lento no Ubuntu, mas não no Windows

0

Eu tenho um diretório chamado Pages de 2,2 milhões de arquivos HTML (cerca de 80 GB) em um servidor Ubuntu. Eu o compactei com o 7-Zip usando este comando:

7z a -mx=9 Pages.7z Pages

Demorou cerca de 5-6 horas para comprimir (parece excessivo). O tamanho compactado é de cerca de 2,3 GB.

Eu então fiz o download para o meu computador principal (Ubuntu, CPU Intel® Xeon® E5-1650 v2 @ 3.50GHz). Toda vez que eu tento extrair, ele começa com uma velocidade decepcionante, mas aceitável, mas fica mais lento à medida que avança (correu durante a noite e quando eu acordei estava fazendo cerca de 300 arquivos por minuto).

No entanto, na minha máquina Windows (CPU Intel® Xeon® E5-2687W @ 3.10GHz 3.10 GHz, que é apenas uma máquina um pouco melhor, extraí o diretório inteiro em 15-20 minutos. Ele também utilizou claramente vários processadores, que eu não consigo fazer o 7-Zip no Ubuntu.

Obviamente, não posso levar uma extração por vários dias, nem deveria.

Meu sentimento é que isso tem a ver com algo que eu não sei sobre o Ubuntu (eu sou um usuário do Windows em recuperação) ou o meu sistema de arquivos, em vez de 7-Zip. Qualquer ajuda seria tremendamente apreciada.

Meu computador principal usa o sistema de arquivos ext4, e a versão do 7-Zip que eu tenho é 9,20:

7-Zip [64] 9.20 p7zip Versão 9.20 (locale = en_US.UTF-8, Utf16 = on, HugeFiles = on, 12 CPUs)

Atualização:

I should clarify that I actually have one drive on my main Ubuntu installation that is ext4 (my ssd), though I have another one that is ntfs (I think I remember this being recommended by Ubuntu during installation, perhaps b/c I set it up as a raid array). The problem of slowing down over time was happening regardless of which I was working from.

Following advice in the comments, I used my Windows machine to unzip the compressed file, restructure the directory with 4096 subdirectories, and re-zip it (though this time I used the default compression level rather than maximum, and specified lzma2). I then transferred it to my Ubuntu machine (the ext4 SSD specifically) and unzipped. It worked perfectly as I would expect - very fast.

However, as another commenter noted, part of the problem here is likely just that my drives on the Ubuntu machine are not indexed (they are on Windows), and I might not have to restructure directories at all if I do index (which I've been wanting to do anyway). I'm currently trying to figure out how to do that successfully and safely...and will report back with any useful results.

I've also tried restructuring a directory already on my Ubuntu machine using python, which is going unreasonably slow. Perhaps it's a python issue rather than Linux/ext4/ntfs or perhaps it also has to do with indexing, or perhaps it is b/c the source directory has 2.2 million files in one directory...:

for fileName in series:
    if not os.path.exists('[...]/Pages2/' + fileName[:3] + '/' + fileName):
        shutil.copy('[...]/Pages/' + fileName, '[...]/Pages2/' + fileName[:3] + '/' + fileName)
    
por KCzar 19.06.2015 / 00:02

2 respostas

1

Eu finalmente descobri a resposta real quando li a entrada da Wikipedia para o XZ ( link ):

One can think of xz as a stripped-down version of the 7-Zip program. xz has its own file format rather than the .7z format used by 7-Zip (which lacks support for Unix-like file system metadata[2]).

Não há problema em ter milhões de arquivos pequenos em um único diretório, aparentemente, em NTFS ou EXT-4 com Ubuntu (talvez não seja aconselhável por outros motivos). Também não havia nada de errado com a indexação em meus sistemas de arquivos. A razão pela qual o 7zip desacelera ao tentar extrair um diretório massivo tem tudo a ver com os escritores do 7zip que não se importam muito com os usuários do Linux / Unix.

Isso faz meio me perguntar se quem escreveu Nautilus é similarmente desdenhoso com usuários de Linux ... b / c realmente não gosta de diretórios com muitos arquivos, enquanto o Windows Explorer não tem problemas com isso.

    
por 03.07.2015 / 23:17
1

você está falando de um diretório com arquivos de 2,2mil? Os sistemas de arquivos ext gostam de ficar lentos quando você trabalha com muitos arquivos.

    
por 19.06.2015 / 00:15