[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-
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
(1) linha de comando Iperf (não pode ser inserida diretamente)
Setting Configuração 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
Endereço do servidor: 10.0.115.82, porta: 5001, fluxo simultâneo: 1
(2) configurações da camada de aplicação
① Compatível com a versão antiga (usada quando as versões do servidor e do cliente são diferentes)
② Defina o modo de teste: o tamanho total dos bytes transmitidos é 15Bytes ou o tempo total de transmissão é de 15 segundos
Test 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
⑤ Especifique o arquivo a ser transferido
⑥ Exibir o valor máximo de mtu tcp
(3) configurações da camada de transporte
① protocolo TCP
❶ Defina o tamanho do buffer
❷ Especifique o tamanho da janela TCP
❸ Defina o valor máximo de mtu dos pacotes TCP
❹ Defina o TCP sem demora
② protocolo UDP
❶ Defina a largura de banda máxima de UDP
❷ Definir buffer UDP
Size Tamanho do encapsulamento de pacote UDP: 1470 bytes padrão
Layer configuração da camada IP
❶ Especifique o valor ttl
❷ Tipo de serviço (ToS), o tamanho varia de 0x10 (atraso mínimo) a 0x2 (custo mínimo)
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