Come verificare la velocità della mia NIC?

Ho appena installato una nuova scheda di interface di networking gigabit (NIC) in Linux. Come faccio a sapere se è realmente impostato su velocità gigabit? Vedo ethtool ha un'opzione per impostare la velocità, ma non riesco a capire come segnalare la sua velocità attuale.

  • Trac + SVN: perché il post hook di commit non funziona?
  • Bash non può avviare un programma che è presente e dispone di tutte le autorizzazioni necessarie
  • Sheepdog contro iSCSI per KVM
  • Terminal mostra solo $?
  • Come grep l'indirizzo IP e il numero di accesso
  • Cambiare la password di Windows AD da Linux
  • Passo Colonna di fstab
  • Equivalenti di command Linux in opensolaris (e viceversa)?
  • 8 Solutions collect form web for “Come verificare la velocità della mia NIC?”

    Basta usare un command come: ethtool eth0 per get le informazioni necessarie. Ex:

    $ sudo ethtool eth0 | grep Speed

     Speed: 1000Mb/s 

    Utilizza lo mii-tool per guardare la velocità di networking negoziata.

    Ex.

     eth0: no link eth1: negotiated 100baseTx-FD, link ok 

    È ansible utilizzare le informazioni dal kernel quando manca il file ethtool:

     cat /sys/class/net/<interface>/speed 

    Come ha detto Khaled, si dovrebbe essere in grado di eseguire ethtool con solo l'interface come un argomento. In questo modo vengono elencate le velocità supportte, le velocità pubblicizzate, la velocità attuale e un sacco di altre cose:

     Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) Link detected: yes 

    È inoltre ansible eseguire dmesg e grep per l'interface, ma questo potrebbe non funzionare se il sistema è in esecuzione per lungo tempo e il buffer corrente non dispone più di tali informazioni (in questo caso dovrai inserire i dati precedenti / var / log / dmesg. * file):

     dmesg |grep eth0 [ 2.867481] e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection [ 19.429444] ADDRCONF(NETDEV_UP): eth0: link is not ready [ 19.431555] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None [ 19.449341] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 26.972379] e1000: eth0: e1000_set_tso: TSO is Enabled [ 29.920458] eth0: no IPv6 routers present 

    Ci sono alcune ottime risposte qui, volevo solo aggiungere altre opzioni.

    1. So che questo non è proprio quello che hai chiesto (leggere per altri modi). Ma se si desidera conoscere le performance reali del tuo NIC , piuttosto che quello che il tuo computer dice dovrebbe essere, è ansible utilizzare iperf. Di solito faccio questo – perché non sai mai. Ho comprato un 1Gb NIC di recente che solo trasferito a 672Mbps, ma il suo uplink era 1Gb. Buona cosa che ho controllato.

    Avnetworking bisogno di due computer.

    Su un computer, eseguire iperf nella modalità server:

     iperf -s 

    D'altra parte, eseguire iperf nella modalità client:

     iperf -c 192.168.0.10 

    Se si desidera visualizzare la velocità duplex completa, provare invece questo:

     iperf -d -c 192.168.0.10 

    Sostituisci 192.168.0.10 per l'indirizzo IP dei server

    2. Nei sisthemes Ubuntu, /var/log/kern.log ha limitato la logging degli events del kernel. Registrerà la velocità di collegamento e lo stato di una NIC quando cambia. Sono sicuro che altre distribuzioni probabilmente fanno qualcosa di simile o possono essere configurate per farlo.

     $ tail -n 300 /var/log/kern.log.1 | grep slave0 Aug 28 12:54:04 haze kernel: [ 9452.766248] e1000e: slave0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx Aug 28 12:54:41 haze NetworkManager[921]: <info> [1472403281.8486] device (slave0): link disconnected Aug 28 12:54:41 haze kernel: [ 9489.898476] e1000e: slave0 NIC Link is Down 

    3. Probabilmente non avrai mai bisogno di andare fino a questo punto, ma puoi scrivere codice c per get la velocità. Non è necessario eseguire test e radice.

    https://stackoverflow.com/questions/2872058/get-link-speed-programmatically

     #include <stdio.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <netinet/in.h> #include <linux/sockios.h> #include <linux/if.h> #include <linux/ethtool.h> #include <string.h> #include <stdlib.h> int main (int argc, char **argv) { int sock; struct ifreq ifr; struct ethtool_cmd edata; int rc; sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP); if (sock < 0) { perror("socket"); exit(1); } strncpy(ifr.ifr_name, "eth0", sizeof(ifr.ifr_name)); ifr.ifr_data = &edata; edata.cmd = ETHTOOL_GSET; rc = ioctl(sock, SIOCETHTOOL, &ifr); if (rc < 0) { perror("ioctl"); exit(1); } switch (ethtool_cmd_speed(&edata)) { case SPEED_10: printf("10Mbps\n"); break; case SPEED_100: printf("100Mbps\n"); break; case SPEED_1000: printf("1Gbps\n"); break; case SPEED_2500: printf("2.5Gbps\n"); break; case SPEED_10000: printf("10Gbps\n"); break; default: printf("Speed returned is %d\n", edata.speed); } return (0); } 

    Utilizza il command sotto

      dmesg | grep -i duplex Output: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 

    fare riferimento a questo

    Anche per riferimento futuro ho notato che il field di velocità in ethtool dà la velocità massima supportta dalla NIC e il mii-tool dà la velocità effettiva sul quale la NIC è in esecuzione.

     [ root @ ]# mii-tool eth0: negotiated 100baseTx-FD, link ok [ root @ ]# ethtool eth0 Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 2 Transceiver: internal Auto-negotiation: on MDI-X: off (auto) Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000007 (7) drv probe link Link detected: yes 

    AGGIORNAMENTO: dopo un po 'di tempo, uno scoperto che il mii-tool non stava restituendo la giusta velocità in quanto era obsoleto e deprecato e che era in ritardo la velocità negoziata.

    ethtool eth0 lavorato per me. Esempio:

     $ethtool eth0 |grep -i speed Speed: 1000Mb/s 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.