Máximo de arquivos (práticos) por pasta em um compartilhamento de arquivos do Windows?

4

Eu suporte um aplicativo interno que armazena arquivos em um compartilhamento de arquivos do Windows Server 2003 SP2. Por causa de como ele está atualmente configurado para armazenar arquivos, uma pasta tem ~ 116.000 arquivos (outro tem ~ 65.000, e as outras pastas têm menos, mas ainda vários milhares em cada). O aplicativo ficou muito lento para gravar arquivos.

O layout do arquivo é configurável para um existente, então estou tentando criar um plano melhor. Alguém tem alguma experiência sobre quantos itens por pasta o SMB pode manipular antes de começar a ficar inutilizável? Neste caso, tem sido lento por um bom tempo, mas ele não começou a ficar intangível até que a pasta excedeu 100.000 arquivos.

    
por Jeff Hardy 10.07.2009 / 18:10

3 respostas

4

É mais dependente da largura de banda e da latência (especialmente a latência) do que do número de arquivos e da escala nos algoritmos usados para enumerar o diretório. Não há "número mágico", eu acho, é o que estou dizendo.

O protocolo SMB é hediondo para exigir muitas e muitas viagens de ida e volta. Esse número de arquivos, com o dobro da latência, seria muitos vezes mais que o dobro, por exemplo.

Você fez o benchmarking por acidente para a sua LAN, a latência de sua infraestrutura de rede e a latência do subsistema de I / O do seu servidor. Você obviamente encontrou um "número mágico". Eu começaria esse diretório reduzido até que o desempenho melhore. Não há outro jeito!

    
por 10.07.2009 / 18:26
4

Evan está certo, não há número mágico. Depende do aplicativo e do servidor. A atualização para o servidor 2008 ajudará, e é a primeira coisa que eu faria, contanto que o cliente seja o Vista ou melhor, pois eles usam o SMBv2. Eu tenho compartilhamentos que têm 500.000 arquivos que navegam como lixo, mas, desde que os usuários só usam caminhos diretos fornecidos, funcionam bem. No mesmo servidor, tenho compartilhamentos com 100.000 arquivos com os quais os usuários não têm problemas.

    
por 10.07.2009 / 19:16
-1

Parcialmente relacionado:

Stop ‘last access update’

Whenever you access a folder on a NTFS drive, Windows XP updates that folder and all subfolders with a time stamp with the date of last access. Sometimes, this can slower windows performance.

To change this, open REGEDIT ( Start -> Run -> ‘regedit’ ) and navigate to HKEY_LOCAL_MACHINES\System\CurrentControlSet\Control\FileSystem

Create a new DWORD value ( right click -> new -> DDWORD Value ) called ‘NtfsDisableLastAccessUpdate’ and set the value to ‘1’

e

Disable unnecessary naming convention

For each file created, windows xp use one additional name for MSDOS compatibility: 8 character name followed by a “.”, then 3 characters for the extension. If you don’t intend to use DOS only software, this is waste of memory.

To change this, open REGEDIT
Navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem

Change the value of the NtfsDisable8dot3NameCreation key to ‘1’

(tirada do link )

    
por 10.07.2009 / 19:50