5.13 Otimizando transferência de dados por conexões WAN

Você pode otimizar o desempenho da transferência de dados e ajustá-la para conexões WAN. Para fazer isso, modifique os parâmetros de configuração que o sistema lê nas configurações que você faz em uma ferramenta de configuração que reside no host de Servidor do PlateSpin. Para saber o procedimento genérico, consulte Configuração do PlateSpin.

5.13.1 Parâmetros de ajuste

Use as configurações de parâmetros de configuração de transferência de arquivo para otimizar as transferências de dados por uma WAN. Essas configurações são globais e afetam todas as replicações que usam replicações com base no arquivo e VSS.

NOTA:Se esses valores forem modificados, o tempo de replicação em redes de alta velocidade, como Gigabit Ethernet, pode ser afetados de forma negativa. Antes de modificar qualquer um desses parâmetros, convém consultar primeiro o Suporte do PlateSpin.

A Tabela 5-4 lista os parâmetros de configuração na página PlateSpin Configuration (https://Seu_Servidor_do_PlateSpin/PlateSpinConfiguration/) que controlam as velocidades de transferência de arquivo com os padrões e os valores máximos. Você pode modificar esses valores por meio do teste de avaliação e erro para otimizar a operação em um ambiente WAN de alta latência.

Tabela 5-4 Parâmetros de Configuração de Transferência de Arquivo Padrão e Otimizada

Parâmetro

Valor Padrão

Valor Máximo

AlwaysUseNonVSSFileTransferForWindows2003

False

 

FileTransferCompressionThreadsCount

Controla o número de threads usados para compactação de dados no nível de pacote. Essa configuração será ignorada se a compactação for desabilitada. Como a compactação está vinculada à CPU, essa configuração pode sofrer impacto no desempenho.

2

N/D

FileTransferBufferThresholdPercentage

Determina a quantidade mínima de dados que devem ser armazenados no buffer antes de criar e enviar novos pacotes de rede.

10

 

FileTransferKeepAliveTimeOutMilliSec

Especifica quanto tempo aguardar antes de enviar mensagens keep-alive se o tempo de espera do TCP se esgotar.

120000

 

FileTransferLongerThan24HoursSupport

True

 

FileTransferLowMemoryThresholdInBytes

Determina quando o servidor se considera em um estado de pouca memória, o que aumenta determinado comportamento de rede.

536870912

 

FileTransferMaxBufferSizeForLowMemoryInBytes

Especifica o tamanho do buffer interno usado em um estado de pouca memória.

5242880

 

FileTransferMaxBufferSizeInBytes

Especifica o tamanho do buffer interno destinado ao armazenamento de dados de pacotes.

31457280

 

FileTransferMaxPacketSizeInBytes

Determina os maiores pacotes que serão enviados.

1048576

 

FileTransferMinCompressionLimit

Especifica o limite de compactação no nível de pacote em bytes.

0 (desabilitado)

máx. 65536 (64 KB)

FileTransferPort

3725

 

FileTransferSendReceiveBufferSize

Define o tamanho máximo (em bytes) dos buffers de envio e recebimento para conexões TCP na rede de replicação. O tamanho do buffer afeta o tamanho da RWIN (Receive Window – Janela de Recepção) do TCP, que define o número de bytes que podem ser enviados sem confirmação do TCP. Essa configuração é relevante para transferências com base no arquivo e em blocos. O ajuste do tamanho do buffer com base na largura de banda da rede e na latência melhora o throughput e reduz o processamento da CPU.

Quando o valor é definido como zero (desativado), o tamanho da janela do TCP padrão é usado (8 KB). Para tamanhos personalizados, especifique o valor em bytes.

Use a fórmula a seguir para determinar o valor apropriado:

((VELOCIDADE_LINK em Mbps / 8) * ATRASO em s)) * 1000 * 1024

Por exemplo, para um link de 100 Mbps com 10 ms de latência, o tamanho do buffer apropriado é:

(100/8)* 0,01 * 1000 * 1024 = 128000 bytes

Para obter informações sobre ajuste, consulte Ajustando FileTransferSendReceiveBufferSize.

0 (8192 bytes)

máx. 5242880 (5 MB)

FileTransferSendReceiveBufferSizeLinux

Especifica a configuração de Tamanho da RWIN (Receive Window – Janela de Recepção) do TCP/IP para conexões de transferência de arquivo para o Linux. Ele controla o número de bytes enviados sem confirmação do TCP, em bytes.

Quando o valor é definido como zero (desativado), o valor do tamanho da janela do TCP/IP para Linux é calculado automaticamente com base na configuração FileTransferSendReceiveBufferSize. Se os dois parâmetros forem definidos como zero (desativado), o valor padrão será 248 KB. Para tamanhos personalizados, especifique o valor em bytes.

NOTA:Em versões anteriores, era necessário definir esse parâmetro como metade do valor desejado, mas isso não é mais necessário.

0 (253952 bytes)

 

FileTransferShutDownTimeOutInMinutes

1090

 

FileTransferTCPTimeOutMilliSec

Define ambos os valores de Tempo de Espero de Envio e Recebimento do TCP.

30000

 

PostFileTransferActionsRequiredTimeInMinutes

60

 

5.13.2 Ajustando FileTransferSendReceiveBufferSize

O parâmetro FileTransferSendReceiveBufferSize define o tamanho máximo (em bytes) dos buffers de envio e recebimento para conexões TCP na rede de replicação. O tamanho do buffer afeta o tamanho da RWIN (Receive Window – Janela de Recepção) do TCP, que define o número de bytes que podem ser enviados sem confirmação do TCP. Essa configuração é relevante para transferências com base no arquivo e em blocos. O ajuste do tamanho do buffer com base na largura de banda da rede e na latência melhora o throughput e reduz o processamento da CPU.

Você pode ajustar o parâmetro FileTransferSendReceiveBufferSize para otimizar a transferência de blocos ou arquivos dos servidores de origem para os servidores de destino em seu ambiente de replicação. Defina o parâmetro na página PlateSpin Configuration (https://Seu_Servidor_do_PlateSpin/PlateSpinConfiguration/).

Para calcular o tamanho ideal do buffer:

  1. Determine a latência (atraso) entre o servidor de origem e o servidor de destino.

    O objetivo é descobrir qual é a latência para um tamanho de pacote que mais se aproxima à MTU.

    1. Efetue login no servidor de origem como usuário Administrador.

    2. Digite o seguinte em um prompt de comando:

      # ping <target-server-ip-address> -f -l <MTU_minus_28> -n 10

      Normalmente, a opção -l para ping adiciona 28 bytes nos cabeçalhos do payload especificado para target-server-ip-address. Portanto, um tamanho em bytes de MTU minus 28 é uma boa tentativa de valor inicial.

    3. Modifique o payload sucessivamente e digite outra vez o comando na Etapa 1.b até você receber a seguinte mensagem:

      The packet needs to be fragmented.

    4. Anote a latência em segundos.

      Por exemplo, se a latência for 35 ms (milissegundos), anote 0,035. 

  2. Calcula um valor de byte para o tamanho inicial do buffer:

    Tamanho do Buffer = (Largura de Banda em Mbps / 8) * Latência em segundos * 1000 * 1024

    Use valores binários para a largura de banda da rede. Ou seja, 10 Gbps = 10240 Mbps e 1 Gbps = 1024 Mbps.

    Por exemplo, o cálculo para uma rede de 10 Gbps com uma latência de 35 ms é:

    Tamanho do Buffer = (10240 / 8) * 0,035 * 1000 * 1024 = 45875200 bytes
  3. (Opcional) Calcule o tamanho ideal do buffer arredondando para um múltiplo de MSS (Maximum Segment Size – Tamanho de Segmento máximo).

    1. Determine o MSS:

      MSS = Tamanho da MTU em bytes - (Tamanho do Cabeçalho IP + Tamanho do Cabeçalho TCP) 

      O tamanho do cabeçalho IP é de 20 bytes. O tamanho do cabeçalho TCP é de 20 bytes mais os bytes de opções como marcação de horário.

      Por exemplo, se o tamanho da MTU for 1470, o MSS normalmente será 1430.

      MSS = 1470 bytes - (20 bytes + 20 bytes) = 1430 bytes
    2. Calcule o tamanho ideal do buffer:

      Tamanho Ideal do Buffer = (arredondamento (Tamanho do Buffer / MSS)) * MSS

      Para continuar o exemplo:

      Tamanho Ideal do Buffer = (arredondamento (45875200 / 1430)) * 1430 
      					= 32081 * 1430 
      					= 45875830

      Arredonde para cima ao invés de arredondar para baixo, senão o múltiplo do MSS será menor do que o Tamanho do Buffer de 45875200:

      Tamanho do Buffer não ideal = 32080 * 1430 = 45874400