[Notas do estudo] Iperf3 ferramenta de teste de desempenho de rede

[Notas do estudo] Iperf3 ferramenta de teste de desempenho de rede

A avaliação do desempenho da rede é principalmente para monitorar a taxa de utilização da largura de banda da rede e maximizar a utilização da largura de banda da rede é a base para garantir o desempenho da rede.No entanto, devido ao design de rede não razoável e às vulnerabilidades de segurança da rede, a utilização da largura de banda da rede não será alta. Para descobrir a causa da baixa utilização da largura de banda da rede, é necessário monitorar a transmissão da rede.No momento, você precisa usar algumas ferramentas de avaliação de desempenho da rede, e o Iperf é uma ferramenta de teste da largura de banda da rede.

1. Introdução ao Iperf

1. O que é o iperf?

O Iperf é uma ferramenta de teste de desempenho de rede de código aberto desenvolvida pela Universidade de Illinois. Ele pode ser usado para testar o desempenho de conexões TCP ou UDP entre nós da rede (incluindo loopback), incluindo largura de banda, jitter e taxa de perda de pacotes.A taxa de jitter e perda de pacotes é adequada para teste UDP, enquanto o teste de largura de banda é adequado para TCP e UDP.

O Iperf é uma ferramenta de teste de desempenho de rede baseada em TCP / IP e UDP / IP, que pode ser usada para medir a largura de banda e a qualidade da rede, além de fornecer informações estatísticas como instabilidade de retardo na rede, taxa de perda de pacotes e unidade máxima de transmissão. Os administradores de rede podem entender e julgar os problemas de desempenho da rede com base nessas informações, localizando gargalos e solucionando falhas na rede.

O Iperf é uma ferramenta de teste de desempenho de rede baseada no modo de linha de comando, é multiplataforma e oferece suporte completo à plataforma em Windows, Linux e Mac. O iperf usa a memória como um buffer de envio / recebimento durante todo o processo, não é afetado pelo desempenho do disco e possui requisitos muito baixos para a configuração da máquina. No entanto, por ser uma ferramenta de linha de comando, o iperf não suporta a saída de padrões de teste.

O Iperf pode testar a qualidade da largura de banda do TCP e UDP, com uma variedade de parâmetros e características UDP, pode ser usado para testar o desempenho de alguns dispositivos de rede, como roteadores, firewalls, comutadores, etc.

2. Funções do Iperf
(1) TCP

① Medindo a largura de banda da rede

② Relate o tamanho e a observação do valor MSS / MTU

③ Suporte ao valor da janela TCP através do buffer de soquete

④ Quando a linha P ou a linha Win32 estiverem disponíveis, suporte a multi-thread. Cliente e servidor suportam múltiplas conexões simultâneas

(2) UDP

① O cliente pode criar fluxo UDP com largura de banda especificada

② Medindo a perda de pacotes

Delay Atraso na medição

④ Suporte multicast

⑤ Quando a linha P estiver disponível, suporte a várias linhas. Cliente e servidor suportam várias conexões simultâneas (o Windows não é suportado)

(3) Outros aspectos

① Onde apropriado, K (quilo-) e M (mega-) podem ser usados ​​como opções. Por exemplo, 131072 bytes podem ser substituídos por 128K.

② Você pode especificar o tempo total de execução e até definir a quantidade total de dados transferidos.

③ No relatório, selecione a unidade mais adequada para os dados.

④ O servidor suporta várias conexões em vez de aguardar um teste de thread único.

Display Exiba repetidamente a largura de banda da rede, a flutuação e a perda de pacotes em intervalos de tempo especificados.

Server O servidor pode ser executado como um programa em segundo plano.

⑦ O servidor pode ser executado como um serviço do Windows.

⑧ Use o fluxo de dados típico para testar o impacto da compactação da camada de link na largura de banda disponível.

Segundo, a instalação do Iperf

1. A versão do iperf

O Iperf possui duas versões, a versão Windows e a versão Linux.

(1) versão Unix / Linux

A versão Unix / Linux é atualizada mais rapidamente e a versão mais recente A versão mais recente é iperf3.0.

Endereço de download da versão do Linux: http://code.google.com/p/iperf/downloads/list

Para testar a precisão, tente usar o teste do ambiente linux.

(2) versão do Windows

A versão do iperf para Windows é chamada jperf, ou xjperf, e a atualização é lenta.A versão mais recente é 1.7 (compactada em jperf).

Endereço de download da versão do Windows: http://sourceforge.net/projects/iperf/files/jperf/jperf 2.0.0 /

O jperf é um programa de interface gráfica desenvolvido com base no iperf, que simplifica a construção de parâmetros complexos da linha de comando e também pode salvar os resultados do teste, enquanto exibe os resultados graficamente em tempo real.

2. Instalação do iperf para Windows

Para a versão do iperf para Windows, baixe o pacote de instalação e descompacte-o diretamente e copie o iperf.exe e o cygwin1.dll descompactados para o diretório% systemroot%.

3. Instalação do iperf para Linux
(1) instalação on-line:

Instalação do CentOS:yum install -y iperf3

Instalação do Debian e Ubuntu:apt-get install iperf3

(2) Instalação offline: baixe a versão correspondente do pacote de instalação

gunzip -c iperf- .tar.gz | tar -xvf - cd iperf- ./configure make make install

Três, o uso de Iperf

1. O modo de trabalho do Iperf

O Iperf pode ser executado em qualquer rede IP, incluindo Ethernet local, acesso à Internet, rede Wi-Fi, etc. No modo de trabalho, o iperf é executado no modo servidor e cliente. Seu servidor é usado principalmente para receber solicitações de teste recebidas e o cliente é usado principalmente para iniciar sessões de conexão de teste . Portanto, são necessários pelo menos dois servidores e um para usar o iperf. Execute no modo servidor, o outro é executado no modo cliente.

Após concluir a instalação do iperf, execute "iperf3 -h" para exibir o uso detalhado do iperf. As opções de linha de comando do iperf são divididas em três categorias, que são opções comuns do lado do cliente e do servidor, opções especiais do lado do servidor e opções especiais do lado do cliente.

2. Parâmetros comuns do Iperf (teste suficiente)

(1) -s, --server: modo de servidor iperf, a porta de escuta padrão é 5201, por exemplo: iperf -s

(2) -c, --client host: modo cliente iperf, host é o endereço do servidor, por exemplo: iperf -c 222.35.11.23

(3) -i, --interval: especifique o intervalo de tempo entre cada relatório, em segundos, por exemplo: iperf3 -c 192.168.12.168 -i 2

(4) -p, --port: especifique a porta que o servidor monitora ou a porta à qual o cliente se conecta.O padrão é a porta 5001.

(5) -u, --udp: indica que o protocolo UDP é usado para enviar pacotes, sem esse parâmetro indica que o protocolo TCP é usado.

(6) -l, --len: Define o comprimento do buffer de leitura e gravação, a unidade é Byte. O modo TCP é o padrão para 8 KB e o modo UDP é o padrão para 1470 bytes. Geralmente, o valor é 16 ao testar o PPS e 1400 ao testar o BPS.

(7) -b, --bandwidth [K | M | G]: especifique a largura de banda usada no modo UDP, em bits / s O valor padrão é 1 Mbit / s.

(8) -t, --time: Especifique o tempo total para transmissão de dados, ou seja, envie repetidamente pacotes de dados do tamanho especificado dentro do tempo especificado. O padrão é 10 segundos.

(9) -A: afinidade da CPU, você pode vincular o processo iperf3 específico à CPU lógica numerada correspondente para evitar o agendamento do processo iperf entre diferentes CPUs.

3. Parâmetros comuns (compartilhados por servidor e cliente)

(1) -f, --farmat [k | m | g | K | M | G]: especifique a unidade de saída de largura de banda "" [k | m | g | K | M | G] "significa Kbits, Mbits, Gbits, KBytes, MBytes, GBytes exibem os resultados de saída, os Mbits padrão, por exemplo: iperf3 -c 192.168.12.168 -f M

(2) -p, --port: especifique a porta que o servidor monitora ou a porta à qual o cliente está conectado.O padrão é 5001.

(3) -i, --interval: especifique o intervalo de tempo entre cada relatório, em segundos, por exemplo: iperf3 -c 192.168.12.168 -i 2

(4) -F: especifique o arquivo como um fluxo de dados para teste de largura de banda. Por exemplo: iperf3 -c 192.168.12.168 -F web-ixdba.tar.gz

4. Parâmetros específicos do servidor

(1) -s, --server: modo de servidor iperf, a porta de escuta padrão é 5201, por exemplo: iperf -s

(2) -c, --client host: se o iperf for executado no modo de servidor e especificar um host com o parâmetro -c, o iperf aceitará apenas conexões do host especificado. Este parâmetro não pode funcionar no modo UDP.

(3) -D: Execute o Iperf como um daemon em segundo plano na plataforma Unix. Sob a plataforma Win32, o Iperf será executado como um serviço.

(4) -R: desinstale o serviço Iperf (apenas para Windows).

(5) -o: redireciona a saída para o arquivo especificado (apenas para Windows).

(6) -P, --parallel: o número de conexões mantidas antes do encerramento do servidor. O padrão é 0, o que significa que a conexão é sempre aceita.

5. Parâmetros específicos do cliente

(1) -c, --client host: modo cliente iperf, host é o endereço do servidor, por exemplo: iperf -c 222.35.11.23

(2) -u, --udp: indica que o protocolo UDP é usado para enviar a mensagem, sem esse parâmetro indica que o protocolo TCP é usado.

(3) -b, --bandwidth [K | M | G]: especifique a largura de banda usada no modo UDP, em bits / s O valor padrão é 1 Mbit / s.

(4) -t, --time: especifique o tempo total para transmissão de dados, ou seja, envie repetidamente pacotes de dados do tamanho especificado dentro do tempo especificado. O padrão é 10 segundos.

(5) -l, --len: Define o comprimento do buffer de leitura e gravação, a unidade é Byte. O padrão TCP é 8 KB, o padrão UDP é 1470 bytes. Geralmente, o valor é 16 ao testar o PPS e 1400 ao testar o BPS.

(6) -n, --num [K | M | G]: especifique o número de bytes do pacote de dados transmitidos, por exemplo: iperf3 -c 192.168.12.168 –n 100M

(7) -P, --parallel: especifique o número de threads usados ​​entre o cliente e o servidor. O padrão é 1 thread. O cliente e o servidor precisam usar esse parâmetro ao mesmo tempo.

(8) -w, --window: Especifique o tamanho do buffer do soquete.No modo TCP, essa configuração é o tamanho da janela TCP. No modo UDP, essa configuração é o tamanho do buffer para receber pacotes UDP, usado para limitar o valor máximo de pacotes que podem ser recebidos

(9) -B, --bind: usado para ligar um endereço ou interface de host.Este parâmetro é usado apenas para hosts com várias interfaces de rede. No modo UDP, esse parâmetro é usado para ligar e ingressar em um grupo multicast.

(10) -M, --mss: define o valor do segmento de informações máximas do TCP

(11) -N, --nodelay: configura o TCP sem demora

(12) -V: vincule um endereço IPv6.

(13) -d, --dualtest: Executa o modo de teste duplo. O servidor será conectado ao cliente ao contrário, usando a porta especificada no parâmetro -L (ou a porta usada pelo cliente para conectar-se ao servidor por padrão). Use o parâmetro -r para executar o modo interativo.

(14) -L, --listenport: especifique a porta usada quando o servidor se conectar novamente ao cliente. Por padrão, o cliente se conecta à porta do servidor.

(15) -r, --tradeoff: modo de teste alternativo. Quando o teste do cliente para o servidor termina, o servidor se conecta novamente ao cliente. Quando a conexão do cliente é encerrada, a conexão reversa inicia imediatamente. Se você precisar executar um teste bidirecional ao mesmo tempo, tente o parâmetro -d.

6. outros parâmetros

(1) -h, --help: exibe a referência da linha de comandos e sai.

[root]# iperf3 -h  
Usage: iperf3  [-s|-c host] [options]  
iperf3 [-h|--help] [-v|--version]

(2) -v, --version: exibe informações de versão e informações de compilação e sai.

Quatro, Iperf usa exemplos

1. Preparação ambiental:

(1) Endereço IP do lado do servidor: 192.168.0.120

(2) Endereço IP do lado do servidor: 192.168.0.121

2. Teste a taxa de transferência TCP
(1) No lado do servidor, inicie o modo de servidor iperf e especifique a porta TCP:
[root@iperf-server  ~]# iperf3 -s -i 1 -p  520  
------------------------------------------------------------  
Server listening  on TCP port 520  
TCP window size:  85.3 KByte (default)  
------------------------------------------------------------ 
(2) O cliente inicia o modo cliente iperf e se conecta ao servidor
[root@iperf-client  ~]# iperf -c 192.168.0.120  -i 1 -t 60 -p 520  
------------------------------------------------------------  
Client connecting  to 192.168.0.120, TCP port 520  
TCP window size:  45.0 KByte (default)  
------------------------------------------------------------  
[ 3] local 192.168.0.121  port 50616 connected with 192.168.0.120 port 520  
[ ID] Interval  Transfer Bandwidth  
[ 3] 0.0-10.1 sec  1.27 GBytes 1.08 Gbits/sec     
(3) Resultados do monitoramento do lado do servidor
------------------------------------------------------------  
Server listening  on TCP port 5001  TCP window size:  85.3 KByte (default)  
------------------------------------------------------------  
[ 4] local 192.168.0.120  port 520 connected with 192.168.0.121 port 50616  
[ ID] Interval  Transfer Bandwidth  
[ 4] 0.0-10.1 sec  1.27 GBytes 1.08 Gbits/sec  

Means Intervalo significa intervalo de tempo.

② Transferir representa a quantidade de dados transferidos no intervalo de tempo.

W Largura de banda é a taxa de transmissão no intervalo de tempo.

(4) Teste a taxa de transferência TCP multi-thread

Se nenhum método de envio for especificado, o cliente iPerf usará apenas um único encadeamento.

iperf3 -c 192.168.0.120 -P 30 -t 60  
(5) Realizar testes de largura de banda a montante e a jusante (transmissão bidirecional)
iperf3 -c 192.168.0.120 -d -t 60
(6) Interrompa o processo de serviço iperf3

Para interromper o processo do serviço iperf3, pressione CTRL + z ou CTRL + c

O comando sar Executivo para acabar com o pacote estatístico Servidor realmente recebido como os resultados reais: sar -n DEV 1 320.

3. Teste da taxa de transferência UDP

O teste de largura de banda geralmente usa o modo UDP, porque pode medir a largura de banda limite, atraso de jitter e taxa de perda de pacotes. Ao testar, use primeiro a largura de banda teórica do link como a taxa de transmissão de dados.Por exemplo, a largura de banda teórica do link do cliente para o servidor é de 100 Mbps.Use -b 100M para testar primeiro e depois com base nos resultados do teste Largura de banda real, jitter de atraso e taxa de perda de pacotes) e, em seguida, use a largura de banda real como taxa de transmissão de dados para testar; você descobrirá que o jitter de atraso e a taxa de perda de pacotes são muito melhores do que a primeira vez; repita o teste várias vezes, você pode obter uma estabilidade Largura de banda real.

(1) No lado do servidor, inicie o modo de servidor iperf e especifique a porta UDP:
[root@iperf-server  ~]# iperf3 -s -i 1 -p  521  
------------------------------------------------------------  
Server listening  on port 521  
------------------------------------------------------------
(2) O cliente inicia o modo cliente iperf e se conecta ao servidor
[root@iperf-client  ~]# iperf3 -u -c 192.168.0.120  -b 100m -t 60 -p 521  
------------------------------------------------------------  
Client connecting  to 192.168.0.120, port 521  
------------------------------------------------------------  
[ 3] local 192.168.0.121  port 50616 connected with 192.168.0.120 port 521  
[ ID] Interval  Transfer Bandwidth TotalDatagrams   
[ 3] 0.0-10.1 sec  1.27 GBytes 1.08 Gbits/sec 82
(3) Resultados do monitoramento do lado do servidor
------------------------------------------------------------  
Server listening  on port 521  
------------------------------------------------------------  
[ 4] local 192.168.0.120  port 520 connected with 192.168.0.121 port 50616  
[ ID] Interval  Transfer Bandwidth Jitter Lost/Total Datagrams  
[ 4] 0.0-10.1 sec  1.27 GBytes 1.08 Gbits/sec 0.007 ms 0/82 (0%)

① Tremulação é instabilidade, a diferença média suave na transmissão contínua.

② Perdido é o número de pacotes perdidos.

D Datagramas totais é o número de pacotes.

(4) Teste a taxa de transferência UDP multi-thread

Se nenhum método de envio for especificado, o cliente iPerf usará apenas um único encadeamento.

iperf3 -u -c  192.168.1.1 -b 5M -P 30 -t 60  
(5) Realizar testes de largura de banda a montante e a jusante (transmissão bidirecional)
iperf3 -u -c  192.168.1.1 -b 100M -d -t 60 

V. Introdução ao Jperf

1. Introdução ao Jperf

O jperf é um programa de interface gráfica desenvolvido com base no iperf, que simplifica a construção de parâmetros complexos da linha de comando e também pode salvar os resultados dos testes, enquanto exibe os resultados graficamente em tempo real. O JPerf pode testar a qualidade da largura de banda do TCP e UDP. O JPerf pode medir a largura de banda máxima do TCP, com uma variedade de parâmetros e características UDP. O JPerf pode relatar largura de banda, atrasar a instabilidade e perda de pacotes.

2. Ambiente operacional JPerf2.0

(1) Sistema operacional: ambiente de execução Java

(2) Requisitos de rede: O Jperf pode ser executado em qualquer rede IP, incluindo Ethernet local, conexão de acesso à Internet e rede Wi-Fi.

(3) Outros requisitos: O JPerf deve instalar dois componentes: servidor JPerf e cliente JPerf.

3. Introdução da página JPerf2.0

Página JPerf2.0

(1) linha de comando Iperf (não pode ser inserida diretamente)

Linha de comando do Iperf

Setting Configuração do servidor

Configurações do servidor

Port Porta de monitoramento: 5001

Limit limite do cliente: limite do cliente, apenas permite que o cliente especificado se conecte

Conn Num Connections: o número máximo de conexões permitido, 0 é ilimitado

② Configurações do cliente

Configurações do cliente

Endereço do servidor: 10.0.115.82, porta: 5001, fluxo simultâneo: 1

(2) configurações da camada de aplicação

Configurações da camada de aplicativo

① Compatível com a versão antiga (usada quando as versões do servidor e do cliente são diferentes)

Compatível com versões mais antigas

② Defina o modo de teste: o tamanho total dos bytes transmitidos é 15Bytes ou o tempo total de transmissão é de 15 segundos

Definir modo de teste

Test Teste simultâneo de transmissão bidirecional

Teste simultâneo de transmissão bidirecional

④ Realize o teste de transmissão bidirecional separadamente, primeiro meça a largura de banda de c a s

Teste de transmissão bidirecional separado

⑤ Especifique o arquivo a ser transferido

Especifique o arquivo a ser transferido

⑥ Exibir o valor máximo de mtu tcp

Mostrar o valor tcp max mtu

(3) configurações da camada de transporte

① protocolo TCP

❶ Defina o tamanho do buffer

Definir tamanho do buffer

❷ Especifique o tamanho da janela TCP

Especifique o tamanho da janela TCP

❸ Defina o valor máximo de mtu dos pacotes TCP

Defina o valor máximo de mtu dos pacotes TCP

❹ Defina o TCP sem demora

Defina o TCP sem demora

② protocolo UDP

❶ Defina a largura de banda máxima de UDP

Defina a largura de banda UDP máxima

❷ Definir buffer UDP

Definir buffer UDP

Size Tamanho do encapsulamento de pacote UDP: 1470 bytes padrão

Tamanho do encapsulamento de pacotes UDP

Layer configuração da camada IP

Configurações da camada IP

❶ Especifique o valor ttl

Especifique o valor ttl

❷ Tipo de serviço (ToS), o tamanho varia de 0x10 (atraso mínimo) a 0x2 (custo mínimo)

Tipo de serviço

Link para download deste artigo

Apêndice: Referências

1. "Método de teste de desempenho de rede"

Autor: Ali nuvem documentação de ajuda

Endereço: https://help.aliyun.com/knowledge_detail/55757.html#HFXbx

2. "Enciclopédia iperf-Baidu" (artigo)

Autor: usuários Baidu Wikipedia

Endereço: https://baike.baidu.com/item/iperf/11067694?fr=aladdin

3. "Ferramentas de avaliação de desempenho de rede Linux iperf, CHARIOT test throughput network" (artigo)

Autor: Konglingbin

Endereço: https://www.cnblogs.com/klb561/p/9215952.html

4. "Comando Linux Daquan -iperf"

Autor: incerto

Endereço: https://man.linuxde.net/iperf

5. "Tutorial da função e uso da ferramenta iPerf da ferramenta de teste de desempenho de rede"

Autor: incerto

Endereço: http://www.veryhuo.com/a/view/159685.html

6. "Tutorial da utilização gráfica da ferramenta gráfica IPperf Jperf"

Autor: incerto

Endereço: http://www.veryhuo.com/a/view/159704.html

7. "Usando o iPerf para teste de taxa de transferência de rede"

Autor: Deixe os fãs

Endereço: https://www.jianshu.com/p/15f888309c72

Acho que você gosta

Origin www.cnblogs.com/davidesun/p/12720953.html
Recomendado
Clasificación