Eu uso iperf
. É uma organização do servidor cliente, na qual você o executa no modo de servidor em uma extremidade e se conecta a ele de outro computador do outro lado da rede.
Uma das duas máquinas é executada:
sudo apt-get install iperf
Iniciaremos um iperf
servidor em uma das máquinas:
iperf -s
E então, no outro computador, diga iperf
para se conectar como cliente:
iperf -c <address of other computer>
Na máquina cliente, você verá algo assim:
oli@bert:~$ iperf -c tim
------------------------------------------------------------
Client connecting to tim, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.4 port 37248 connected with 192.168.0.5 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.04 GBytes 893 Mbits/sec
Obviamente, se você estiver executando um firewall na máquina do servidor, precisará permitir conexões na porta 5001 ou alterar a porta com o -p
sinalizador.
Você pode fazer praticamente a mesma coisa com o velho simples nc
(netcat) se estiver inclinado a isso. Na máquina do servidor:
nc -vvlnp 12345 >/dev/null
Eo tubo cliente pode um gigabyte de zeros através dd
sobre o nc
túnel.
dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Como demod:
$ dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Connection to 10.10.0.2 12345 port [tcp/*] succeeded!
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 9.11995 s, 118 MB/s
O tempo é dado por, dd
mas deve ser preciso o suficiente, pois só pode produzir com a rapidez que o tubo aguenta. Se você não estiver satisfeito com isso, poderá encerrar tudo em uma time
ligação.
Lembre-se de que o resultado é em mega bytes, portanto multiplique por 8 para obter uma velocidade de mega bits por segundo. A demonstração acima está sendo executada em 944mbps.
O mesmo que a recomendação de Oli para o iperf. Só quero adicionar vários pontos:
-t <seconds>
altera a duração do teste. altera o número de conexões simultâneas. Por exemplo, testa 10 conexões juntas por 30 segundos e fornece resultados agregados, além de 10 velocidades de conexão separadas.-P <n>
iperf -c [target IP] -P 10 -t 30
wget
, torne-o executável comchmod
e você poderá executar diretamente o binário. Funciona perfeitamente.Descobri que, usando as configurações padrão, a velocidade de conexão única flutua bastante. No entanto, com mais de 3 conexões paralelas, os resultados são mais consistentes no meu switch de gigabytes. (consistentemente @ 910-920Mbps)
fonte
Usando esse script, você pode testar facilmente a velocidade da conexão entre sua máquina e algum host remoto. Exemplo de uso:
user@remote_host
é o seu host de destino (você deve ter acesso ssh a este host)80000
é o tamanho aproximado do arquivo de teste (em kbs), que será recebido para o host remoto. Não é um argumento obrigatório.fonte
/dev/random
(eles podem bloquear) ouurandom
(os comentários do link sugeriram que eles) também podem ser muito lentos; em vez disso, use um dm-crypt (consulte a FAQ 2.19 do cryptsetup. Como posso limpar um dispositivo com criptografia? aleatoriedade de nota? ) talvez com um arquivo em ram.Se você quiser testar sua LAN Ethernet em um nível mais baixo, use o Etherate, que é uma ferramenta gratuita de teste de Ethernet Linux CLI:
https://github.com/jwbensley/Etherate
Jogando tudo junto, como ferramentas como o iPerf (que são muito boas!) Operam sobre IP e TCP ou UDP. Testes de Etherate diretamente na camada 2 da Ethernet / OSI.
fonte
O comando abaixo não requer pacotes adicionais, mas o acesso SSH:
Exemplo de saída:
O comando imprime um arquivo fictício de 3 GB (1000 ^ 3 bytes) cheio de zeros para stdout no servidor remoto, que é impresso (transferido) via SSH para stdout do servidor local e, em seguida, canalizado localmente
/dev/null
(ou seja, ignorado). Você pode até ver o progresso do teste enquanto o executa.Certamente não é tão preciso quanto as outras ferramentas, mas meu caso de uso era depurar um processo de backup em que eu queria testar se a velocidade da rede era o problema sem instalar pacotes adicionais.
fonte
Existem também algumas outras ferramentas interessantes de linha de comando para comparar a largura de banda entre dois hosts:
nuttcp
nepim
goben
fonte
como apontei no meu comentário na melhor resposta, essa solução não é boa o suficiente, porque o cliente / servidor não está otimizado para ... espremer toda velocidade
minha solução:
faça um ramdisk nos dois lados (portanto, você não está limitado pela velocidade de armazenamento e sugiro que você os tenha ramfs e não tmpfs, para que eles não sejam trocados ... apenas tome cuidado para não deixar pelo menos 512M de memória livre para o sistema, isso é NECESSÁRIO se você tiver giga ethernet; nessa velocidade, até os SSDs podem desacelerar) instale o apache no servidor, crie um link para o ramdisk, crie alguns arquivos grandes no ramdisk (100M-1G, você pode criá-los com dd em / dev / random ou copie se você tiver alguns em mãos), vá para o lado do cliente e faça o download (também no ramdisk desse lado) com um programa de download avançado, usei
lftp
oh bem, a diferença foi grande, de 75mbps reportados pelo iperf e 9.5M / s netcat
para 11,18M / s com minha solução:
fonte
É fácil conectar seu computador na primeira caixa, conectar a outra caixa à primeira caixa. Em seguida, no computador, faça ping na primeira caixa e salve o resultado, ping na outra caixa e faça a subtração.
fonte