Unindo o Nics ao Linux para melhorar o desempenho

2

Estou tentando unir duas nicas para obter um melhor desempenho. Eu tenho dois Intel Nics de 1000MBps. Quando eu tinha um nic eu estava correndo alguns benchmarks recebendo 106 MB / s. Isso é bem próximo de 1GBps. Então estou feliz com isso. Quando eu adiciono um segundo nic e o uno com o Mode 0 (balance-rr) eu ainda vejo os mesmos 106 MB / s.

Minha configuração é: Servidor ====== Mudar ===== Armazenamento

O armazenamento e o servidor têm dois nics conectados. Eu sei que não é o armazenamento porque eu posso executar dois benchmarks ao mesmo tempo e obter 2 Gbps através de put.

Tenho certeza de que essa configuração está usando apenas um nic. Existe alguma maneira de definir as coisas para obter um melhor desempenho?

    
por Nicolas Kaiser 02.12.2009 / 07:16

2 respostas

12

Eu acho que você pode estar assumindo que a ligação pode fazer mais do que o que é realmente possível. Uma única conexão entre dois hosts praticamente nunca será capaz de usar mais do que a capacidade de uma única interface. A agregação é útil quando você tem muitas conexões paralelas de vários hosts. Verifique a descrição do modo 0.

Round-robin policy: Transmit packets in sequential order from the first available slave through the last. This mode provides load balancing and fault tolerance.

Ele só faz round robin nos pacotes que estão sendo transmitidos. Não faz e não pode fazer nada para equilibrar os pacotes recebidos. Os pacotes de entrada serão praticamente limitados a uma única interface. Se o seu teste é copiar arquivos do storage array para o seu servidor, provavelmente você está recebendo dados na maior parte.

    
por 02.12.2009 / 09:44
3

O que provavelmente está acontecendo aqui é que enquanto o remetente está balanceando através dos dois NICs, o switch está enviando todos os pacotes pela porta para o receptor, porque apenas um dos NICs receptores é ARPing (ou seu switch só registra um MAC contra um porto). Você pode verificar isso observando as estatísticas da porta.

Se você tiver vários switches e conectar uma NIC em cada servidor a cada comutador e não houver interconexão, provavelmente poderá obter melhor desempenho. No entanto, isso depende de ambos lados (o armazenamento e o servidor) fazendo balanceamento round-robin, e nada se confundindo com toda a situação e desistindo com desgosto. Com mais detalhes sobre o que o armazenamento está envolvido, pode aparecer mais detalhes sobre se o que você está usando é capaz de fazer a coisa certa.

    
por 02.12.2009 / 10:23