Subversion - Verificar milhares de arquivos pequenos é muito lento, onde está o gargalo?

3

Estou em uma LAN gigabit com um servidor 2-Core de 3 Ghz dedicado a servir nosso Repositório.

O que eu verifico em um projeto com cerca de 30.000 arquivos, em sua maioria pequenos, ele só flui em cerca de 1 MB / s. Há cerca de 140 MB, então isso leva uma eternidade.

Certamente o gargalo não é o disco rígido ... afinal, ele está em um SSD. É um problema de processamento?

Windows Server 2008

    
por Brian Webster 18.05.2010 / 20:26

2 respostas

3

O Subversion tem um realmente histórico ruim com desempenho, especialmente no Windows. O problema é com as suposições de que todas as operações do sistema de arquivos são rápidas. E assim eles vão em frente tocando alguns milhares de arquivos antes de uma atualização, tocando-os novamente após uma atualização. E genericamente todos os arquivos baixados resultarão em pelo menos uma gravação e uma renomeação.

O problema é que o NTFS não é tão rápido em tocar alguns milhares de arquivos (nem mesmo em um SSD; eu posso ver isso aqui ;-)) de uma vez, então isso meio que quebra. Provavelmente não há muito que você possa fazer, mas, para comparação, você pode ver o quão rápido é no Linux ou outro tipo de Unix.

    
por 18.05.2010 / 21:28
1

existem 2 problemas:

a) ntfs: se você ativou o suporte para nomes de arquivos 8.3, o Windows terá que criar nomes exclusivos 8.3. ele "anexa" esses nomes como nomes extras e, se os nomes de arquivos em um diretório são muito semelhantes, o algoritmo para criar nomes 8.3 exclusivos tem muito trabalho a fazer. a maneira como o algoritmo funciona é explicada muito bem em "windows internals 5th edition, página 946-947" .você pode desativar esse recurso, checkout link .

e lembre-se, você não está apenas checando 30k arquivos no diretório de trabalho, mas o svn cria uma subpasta .svn com uma cópia local de cada um desses 30k arquivos ...

b) explorer: o explorador tem um bom trabalho para exibir pastas com muitos itens. é demorado exibir todas as estatísticas em uma lista, criar ícones e quais não.

eu suspeito principalmente problema a)

    
por 19.05.2010 / 07:18