Medindo o desempenho do 40Gbe

3

Conectei dois hosts por meio de um link de fibra 40Gbe e gostaria de determinar uma linha de base para a transferência de dados entre eles. Estou vendo velocidades relativamente baixas (~ 620MB / s). Parece que a taxa de sinalização é menor e pode de fato ser 5Gb / s (o que estaria de acordo com o que estou vendo), mas sei muito pouco sobre fibra (e estou em terreno instável).

Minha configuração é a seguinte:

Um extrato da saída de ethtool nas interfaces do 40Gbe, em cada nó, é

Speed: 40000Mb/s
Duplex: Full
Port: FIBRE

Executando um receptor UDP em um host (10.0.0.2)

nc -vv -u -l 2222 > /dev/null

e um remetente do outro

time dd if=/dev/zero count=10000 bs=1500k | nc -u 10.0.0.2 2222

resulta em velocidades em torno da marca de 650MB / s. Diferentes tamanhos de bloco fazem pequenas diferenças.

Se alguém puder apontar se minha abordagem ou pensamento estiver errado, ficarei muito grato (sou muito ecológico nessa área e as páginas wiki e os documentos do fabricante têm sido um pouco opacos para mim).

    
por 0_0 23.04.2016 / 16:32

2 respostas

2

Seria melhor usar uma ferramenta como iperf em vez de dd | nc .

Dessa forma, você pode testar TCP e UDP e obter um relatório de rendimento adequado, além de controlar a taxa, o tamanho do pacote, etc.

As pessoas costumam usar isso para medir o desempenho de 10Gbe e 40Gb.

    
por 23.04.2016 / 19:08
2

Assista top durante a execução do teste. É possível que você esteja atingindo os limites de CPU no comando nc . Vimos nc se tornar o limite de taxa de transferência por ser vinculado à CPU. Como observamos uma taxa de transferência muito maior no espaço do kernel, como a replicação do DRBD, meu palpite é que nc experimenta a sobrecarga de muitas chamadas do sistema.

Se este for o caso, você pode executar vários dd | nc simultâneos para aproveitar vários núcleos de CPU e impulsionar ainda mais seu teste.

    
por 23.04.2016 / 17:16