Eu tenho dois servidores Dell R515 executando o CentOS 6.5, com uma das NICs da broadcom, cada uma diretamente conectada à outra. Eu uso o link direto para enviar backups do servidor principal do par para o secundário todas as noites usando o rsync sobre ssh. Monitorando o tráfego, vejo uma taxa de transferência de ~ 2 MBps, que é muito menor do que eu esperaria de uma porta de gigabit. Eu configurei o MTU para 9000 em ambos os lados, mas isso não pareceu mudar nada.
Existe um conjunto recomendado de configurações e otimizações que me levem ao rendimento máximo disponível? Além disso, como estou usando o rsync over ssh (ou potencialmente apenas o NFS) para copiar milhões de arquivos (~ 6 TB de arquivos pequenos - uma enorme loja de correio Zimbra), as otimizações que estou procurando podem precisar ser mais específicas para o meu caso de uso específico .
Estou usando ext4 nos dois lados, se isso importa
obrigado
Edição: Eu usei as seguintes rsync
opções com resultados bastante semelhantes:
rsync -rtvu --delete source_folder/ destination_folder/
rsync -avHK --delete --backup --backup-dir=$BACKUPDIR source_folder/ destination_folder/
Atualmente, estou olhando para o mesmo nível de desempenho ruim ao usar cp
para uma exportação NFS, pelo mesmo link direto por cabo.
EDIT2: depois de terminar a sincronização, eu pude executar iperf
e constatou que o desempenho estava em torno de 990Mbits / s, a lentidão ocorreu devido ao conjunto de dados real em uso.
fonte
iperf
.Respostas:
A contagem de arquivos e a sobrecarga de criptografia SSH provavelmente são as maiores barreiras. Você não verá a velocidade do fio em uma transferência como esta.
As opções para melhorar incluem:
-e "ssh -c arcfour"
)dd
, ZFS instantâneo envio / recepção , etc.tar
netcat (nc
), mbuffer ou alguma combinação.tuned-adm
configurações do CentOS .rsync
comando. A-W
opção de arquivos inteiros faria sentido aqui? A compactação está ativada?fonte
iperf
para ter certeza.rsync
e não porcp
. Já virsync
levar muito mais tempo para atualizar uma árvore de diretórios remotos criada originalmente porcp
: 88GB atualizada com soma de verificação em 1h26m em vez de 3h! Como você cria o layout de disco inicial é fundamental para obter um bom desempenho de atualização. O tempo da CPU é o mesmo; o tempo real pode dobrar. (A mesma atualização sem verificação é executada em 13 minutos de um SSD para um Seagate de 200 GB).Como você provavelmente sabe, copiar muitos arquivos pequenos (por exemplo, caixas de correio usando o formato MailDir ou similar) definitivamente não é a melhor opção para aproveitar as interfaces de alta largura de banda. O SSH provavelmente também não é o melhor protocolo de transporte. Eu tentaria usar o tar para criar um tarball no host de origem antes de enviá-lo ao host secundário.
Se você precisar de backup incremental, tente as
-g
opções de tar. Se você ainda precisa maximizar o throuput, tente usar o netcat em vez do ssh.fonte
dd
através denc
então. mas agora, eu estou preso com duas enormes backups em seguida, precisam ser movidos para fora do hospedeiro principal, para que eu possa criar um sistema LVM láTente separar os fatores contribuintes:
e testá-los de forma independente.
Eu tive algumas experiências ruins com os drivers Broadcom, então minha primeira sugestão é testar a largura de banda da rede utilizável com:
dd if=/dev/zero bs=1m count=10k | rsh backup_host cat \> /dev/null
fonte