Compartilhar via


Ajuste de desempenho para servidores de arquivos SMB

Considerações sobre a configuração do SMB

Não habilite nenhum serviço ou recurso que o servidor de arquivos e os clientes não exijam. Serviços ou recursos desnecessários podem incluir assinatura de SMB, cache do lado do cliente, minifiltros do sistema de arquivos, serviço de pesquisa, tarefas agendadas, criptografia NTFS, compactação NTFS, IPSEC, filtros de firewall, criptografia Teredo ou SMB.

Verifique se os modos de gerenciamento de energia do BIOS e do sistema operacional estão definidos conforme a necessidade, o que pode incluir o modo Alto Desempenho ou o Estado C alterado. Verifique se os drivers de dispositivo de rede e armazenamento mais recentes, resilientes e rápidos estão instalados.

A cópia de arquivos é uma operação comum executada em um servidor de arquivos. O Windows Server tem vários utilitários de cópia de arquivo internos que você pode executar usando um prompt de comando. O Robocopy é recomendado. Introduzida no Windows Server 2008 R2, a opção /mt do Robocopy pode melhorar significativamente a velocidade em transferências de arquivos remotos usando vários threads durante a cópia de vários arquivos pequenos. Também recomendamos usar a opção /log para reduzir a saída do console, redirecionando logs para um dispositivo NUL ou para um arquivo. Ao usar o Xcopy, recomendamos adicionar as opções /q e /k aos parâmetros existentes. A opção anterior reduz a sobrecarga da CPU com a redução da saída do console, e esta reduz o tráfego de rede.

Ajuste de desempenho do SMB

O desempenho do servidor de arquivos e os ajustes disponíveis dependem do protocolo SMB que é negociado entre cada cliente e o servidor e dos recursos do servidor de arquivos implantados. A versão de protocolo mais recente atualmente disponível é o SMB 3.1.1 no Windows Server 2022, no Windows Server 2016 e no Windows 10. Você pode verificar qual versão do SMB está em uso na sua rede usando Get-SMBConnection do Windows PowerShell em clientes e Get-SMBSession | FL em servidores.

Família do protocolo SMB 3.0

O SMB 3.0 foi introduzido no Windows Server 2012 e aprimorado ainda mais no Windows Server 2012 R2 (SMB 3.02) e no Windows Server 2016 (SMB 3.1.1). Essa versão apresentou tecnologias que podem melhorar significativamente o desempenho e a disponibilidade do servidor de arquivos. Para obter mais informações, consulte SMB no Windows Server 2012 e 2012 R2 2012 e Novidades no SMB 3.1.1.

SMB Direct

O SMB Direct introduziu a capacidade de usar interfaces de rede RDMA para alta taxa de transferência com baixa latência e baixa utilização da CPU.

Sempre que o SMB detecta uma rede compatível com RDMA, ele tenta usar automaticamente a funcionalidade RDMA. No entanto, se por algum motivo o cliente SMB não se conectar usando o caminho RDMA, ele simplesmente continuará a usar conexões TCP/IP. Todas as interfaces RDMA compatíveis com o SMB Direct também são obrigatórias para implementar uma pilha TCP/IP, e o SMB Multichannel está ciente disso.

O SMB Direct não é obrigatório em nenhuma configuração de SMB, mas é sempre recomendável para aqueles que desejam menor latência e menor utilização da CPU.

Para saber mais sobre o SMB Direct, consulte Melhorar o desempenho de um servidor de arquivos com o SMB Direct.

SMB Multichannel

O SMB Multichannel permite que os servidores de arquivos usem várias conexões de rede simultaneamente e oferece taxa de transferência aumentada.

Para saber mais sobre o SMB Multichannel, consulte Implantar SMB Multichannel.

Expansão do SMB

A Expansão do SMB permite que o SMB 3.0 em uma configuração de cluster mostre um compartilhamento em todos os nós de um cluster. Essa configuração ativa/ativa possibilita dimensionar ainda mais os clusters do servidor de arquivos, sem uma configuração complexa com vários volumes, compartilhamentos e recursos de cluster. A largura de banda máxima do compartilhamento é a largura de banda total de todos os nós de cluster do servidor de arquivos. A largura de banda total não fica mais limitada pela largura de banda de um único nó de cluster, mas depende da capacidade do sistema de armazenamento de suporte. Você pode aumentar a largura de banda total adicionando nós.

Para obter mais informações sobre a Expansão do SMB, consulte Visão geral do Servidor de Arquivos de Escalabilidade Horizontal para Dados do Aplicativo e a postagem no blog Escalar horizontalmente ou não, eis a questão.

Contadores de desempenho para SMB 3.0

Os contadores de desempenho SMB a seguir foram introduzidos no Windows Server 2012 e são considerados um conjunto base de contadores quando você monitora o uso de recursos de SMB 2 e versões superiores. Registre os contadores de desempenho em um log de contador de desempenho local bruto (.blg). É mais barato coletar todas as instâncias usando o caractere curinga (*) e, em seguida, extrair instâncias específicas durante o pós-processamento usando Relog.exe.

  • \SMB Client Shares

    Esses contadores exibem informações sobre compartilhamentos de arquivos no servidor que estão sendo acessados por um cliente que está usando versões do SMB 2.0 ou superiores.

    Se você estiver familiarizado com os contadores de disco regulares no Windows, poderá observar uma certa semelhança. Isso não é por acidente. Os contadores de desempenho de compartilhamentos de cliente SMB foram projetados para corresponder exatamente aos contadores de disco. Dessa forma, você pode reutilizar facilmente eventuais diretrizes sobre o ajuste de desempenho do disco do aplicativo que você tem atualmente. Para obter mais informações sobre o mapeamento de contadores, consulte Blog Contadores de desempenho de cliente por compartilhamento.

  • Compartilhamentos de servidor SMB

    Esses contadores exibem informações sobre os compartilhamentos de arquivos SMB 2.0 ou superiores no servidor.

  • Sessões do servidor SMB

    Esses contadores exibem informações sobre sessões de servidor SMB que estão usando o SMB 2.0 ou superior.

    A ativação de contadores no lado do servidor (compartilhamentos de servidor ou sessões de servidor) pode ter um impacto relevante no desempenho de cargas de trabalho com alta E/S.

  • Filtro de Chave de Retomada

    Esses contadores exibem informações sobre o Filtro de Chave de Retomada.

  • Conexão SMB Direct

    Esses contadores medem diferentes aspectos da atividade de conexão. Um computador pode ter várias conexões SMB Direct. Os contadores de Conexão SMB Direct representam cada conexão como um par de endereços IP e portas, em que o primeiro endereço IP e porta representam o ponto de extremidade local da conexão e o segundo endereço IP e porta representam o ponto de extremidade remoto da conexão.

  • Relações entre contadores de desempenho de Disco Físico, SMB, CSV FS

    Para obter mais informações sobre como os contadores de Disco Físico, SMB e CSV FS (sistema de arquivos) estão relacionados, consulte a seguinte postagem no blog: Contadores de desempenho de Volume Compartilhado Clusterizado.

Parâmetros de ajuste para servidores de arquivos SMB

As configurações de Registro REG_DWORD a seguir podem afetar o desempenho dos servidores de arquivos SMB:

  • Smb2CreditsMin e Smb2CreditsMax

    HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\Smb2CreditsMin
    
    HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\Smb2CreditsMax
    

    Os padrões são 512 e 8192 para Windows Server, respectivamente. Esses parâmetros permitem que o servidor limite a simultaneidade da operação do cliente dinamicamente dentro dos limites especificados. Alguns clientes podem obter maior taxa de transferência com limites de simultaneidade mais altos, por exemplo, copiar arquivos em links de alta largura de banda e alta latência. Esses valores padrão se aplicam ao Windows Server, não ao Windows.

    Dica

    Antes do Windows 10 e do Windows Server 2016, o número de créditos concedidos ao cliente variava dinamicamente entre Smb2CreditsMin e Smb2CreditsMax com base em um algoritmo que tentava determinar o número ideal de créditos a serem concedidos com base na latência de rede e no uso de crédito. No Windows 10 e no Windows Server 2016, o servidor SMB foi alterado para conceder créditos incondicionalmente após a solicitação até o número máximo de créditos configurado. Como parte dessa alteração, o mecanismo de limitação de crédito, que reduz o tamanho da janela de crédito de cada conexão quando o servidor está sendo pressionado pela memória, foi removido. O evento de memória baixa do kernel que disparou a limitação só é sinalizado quando o servidor está com tão pouca memória (< alguns MB) que é praticamente inútil. Como o servidor não reduz mais as janelas de crédito, a configuração Smb2CreditsMin não é mais necessária e agora é ignorada.

    Você pode monitorar compartilhamentos de cliente SMB\estações de crédito /s para ver se há problemas com créditos.

  • AdditionalCriticalWorkerThreads

    HKLM\System\CurrentControlSet\Control\Session Manager\Executive\AdditionalCriticalWorkerThreads
    

    O padrão é 0, o que significa que não são adicionados mais threads críticos de trabalho do kernel. Esse valor afeta o número de threads que o cache do sistema de arquivos usa para solicitações de leitura antecipada e write-behind. A elevação desse valor pode permitir mais E/S enfileirada no subsistema de armazenamento e pode melhorar o desempenho de E/S, especialmente em sistemas com muitos processadores lógicos e hardware de armazenamento avançado.

    Observação

    Essa configuração se aplica principalmente ao Windows 7, Windows Server 2008 R2 e sistemas operacionais mais antigos. Em sistemas operacionais posteriores, embora o Gerenciador de Cache ainda consuma indiretamente esse valor, o Gerenciador de Cache não cria threads de trabalho dedicados em sistemas operacionais posteriores; em vez disso, esse valor influencia indiretamente o número de itens de trabalho de cada tipo (trabalhos genéricos, gravadores lentos etc.) O Gerenciador de Cache alocará para envio posterior ao pool de threads do kernel.

    Dica

    O valor poderá precisar ser aumentado se a quantidade de dados sujos do gerenciador de cache (contador de desempenho Cache\Páginas Sujas) estiver crescendo e consumindo grande parte (mais de ~25%) de memória ou se o sistema estiver fazendo muitas E/S de leitura síncrona.

  • MaxThreadsPerNumaNode

    HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\MaxThreadsPerNumaNode
    

    O padrão é 20. O aumento desse valor aumenta o número de threads que o servidor de arquivos pode usar para atender a solicitações simultâneas. Quando um grande número de conexões ativas precisa ser reparado, aumentar o valor poderá melhorar o desempenho quando drivers de filtro de terceiros ineficientes estiverem afetando a E/S. É melhor instalar drivers de filtro de terceiros atualizados e drivers de impressão que processam E/S com mais eficiência em vez de alterar essa configuração.

    Dica

    Uma indicação de que o valor pode ter que ser aumentado é quando as filas de trabalho de SMB2 estão aumentando muito (o contador de desempenho ‘‘Server Work Queues\Queue Length\SMB2 NonBlocking *'‘ fica constantemente acima de ~100).

    Observação

    No SMB1 e no Windows Server 2012 e Windows Server 2008, MaxThreadsPerQueue foi usado para controlar essa configuração. O SMB1 foi preterido e não está mais instalado, e essa configuração em si já não existe mais.

  • AsynchronousCredits

    HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\AsynchronousCredits
    

    O padrão é 512. Esse parâmetro limita o número de comandos SMB assíncronos simultâneos permitidos em uma única conexão. Alguns casos (como quando há um servidor front-end com um servidor IIS de back-end) exigem uma grande quantidade de simultaneidade (para solicitações de notificação de alteração de arquivo, mais especificamente). O valor dessa entrada pode ser aumentado para dar suporte a esses casos. O valor padrão é para o Windows Server, não para o Windows.

  • RemoteFileDirtyPageThreshold

  HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\RemoteFileDirtyPageThreshold

O padrão é 5 GB. Esse valor determina o número máximo de páginas sujas no cache (por arquivo) para uma gravação remota antes que uma liberação interna seja executada. Não recomendamos alterar esse valor, a menos que o sistema sofra lentidão consistente durante gravações remotas pesadas. Esse comportamento de lentidão normalmente ocorreria quando o cliente tem um desempenho de E/S de armazenamento mais rápido do que o servidor remoto. A alteração de configuração é aplicada ao servidor. Cliente e servidor referem-se à arquitetura do sistema distribuído, não a sistemas operacionais específicos; por exemplo, um Windows Server copiando dados para outro Windows Server por SMB ainda envolveria um cliente SMB e um servidor SMB. Para mais informações, consulte Solucionar problemas de desempenho do Cache e do Gerenciador de Memória.

Exemplo de ajuste do servidor SMB

As configurações a seguir podem otimizar um computador para o desempenho do servidor de arquivos em muitas situações. As configurações não são ideais ou adequadas em todos os computadores. Você deve avaliar o impacto de configurações individuais antes de aplicá-las.

Parâmetro Valor Padrão
AdditionalCriticalWorkerThreads 64 0

Contadores do monitor de desempenho do cliente SMB

Para obter mais informações sobre contadores de cliente SMB, consulte Dica do servidor de arquivos Windows Server 2012: os novos contadores de desempenho de cliente SMB para cada compartilhamento fornecem uma ótima visão.