Acabei de instalar uma nova placa de interface de rede gigabit (NIC) no Linux. Como posso saber se está realmente definido para velocidades de gigabit? Vejo que ethtool
há uma opção para definir a velocidade, mas não consigo descobrir como relatar sua velocidade atual.
linux
gigabit-ethernet
ethtool
Usuário1
fonte
fonte
Respostas:
Basta usar um comando como:
ethtool eth0
para obter as informações necessárias. Ex:$ sudo ethtool eth0 | grep Speed
fonte
for i in $(netstat -i | cut -f1 -d" " | tail -n+3) ; do echo "$i: $(ethtool "$i" | grep Speed | sed 's/Speed://g')" ; done
É possível usar as informações do kernel quando o ethtool está ausente:
Exemplo para a interface denominada eth0:
fonte
OBSERVAÇÃO: a página de manual para
mii-tool
possui este aviso:Use
mii-tool
para assistir à velocidade da rede negociada.Ex.
fonte
ethtool
não é instalado por padrão. Masmii-tool
é, como parte do pacote essencial "net-tools". Então essa foi a melhor solução para mim.mii-tool
relatórios negociaram controle de fluxo 100 baseTx-FD, link ok ', ambosethtool
ecat /sys/class/net/eth…/speed
concordam com' 1000 Mb / s Full duplex '. Isso é para um controlador USB 3.0, ou seja, ASIX AX88179 (driver 'ax88179_178a' para Linux).Há algumas ótimas respostas aqui, eu só queria adicionar mais algumas opções.
1. Eu sei que isso não é exatamente o que você pediu (leia sobre outras maneiras). Mas se você deseja conhecer o desempenho do mundo real da sua NIC , e não o que o seu computador diz que deveria ser, você pode usar o iperf. Eu costumo fazer isso - porque você nunca sabe. Eu comprei recentemente uma placa de rede de 1Gb que só foi transferida a 672Mbps, mas seu uplink foi de 1Gb. Ainda bem que eu verifiquei.
Você precisará de dois computadores.
No computador um, execute o iperf no modo de servidor:
Por outro lado, execute o iperf no modo cliente:
Se você quiser ver a velocidade full duplex, tente o seguinte:
Substitua 192.168.0.10 pelo endereço IP dos servidores
2. Nos sistemas Ubuntu, o
/var/log/kern.log
registro de eventos do kernel é limitado. Ele registrará a velocidade e o status do link de uma NIC quando ela mudar. Tenho certeza de que outras distribuições provavelmente fazem algo semelhante ou podem ser configuradas para isso.3. Você provavelmente nunca precisará ir tão longe, mas pode escrever um código c para obter a velocidade. O trabalho e a raiz testados não são necessários.
https://stackoverflow.com/questions/2872058/get-link-speed-programmatically
fonte
Como Khaled mencionou, você deve poder executar o ethtool apenas com a interface como argumento. Isso listará as velocidades suportadas, as velocidades anunciadas, a velocidade atual e várias outras coisas também:
Você também pode executar
dmesg
e grep para sua interface, mas isso pode não funcionar se o sistema estiver em execução por um longo tempo e o buffer atual não tiver mais essas informações (nesse caso, você precisará grep o arquivo / var mais antigo /log/dmesg.*):fonte
Use o comando abaixo
referir isso
fonte
Também para referência futura, notei que o campo de velocidade no ethtool fornece a velocidade máxima suportada pela NIC e o mii-tool fornece a velocidade real na qual a NIC está sendo executada.
ATUALIZAÇÃO: Depois de um tempo, descobrimos que a ferramenta mii não estava retornando a velocidade certa, pois estava desatualizada e obsoleta e o ethtool estava retornando a velocidade negociada.
fonte
ethtool eth0
trabalhou para mim. Exemplo:fonte
ethtool
.