Soru NIC'imin hızını nasıl doğrularım?


Linux'ta yeni bir gigabit ağ arabirim kartı (NIC) kurdum. Gerçekten gigabit hızlarına ayarlanmış olup olmadığını nasıl anlarım? anlıyorum ethtool hızı ayarlamak için bir seçenek var, ancak mevcut hızını nasıl bildireceğini anlayamıyorum.


101
2017-11-30 16:20


Menşei


ethtool -h diyor ki: ethtool DEVNAME Cihaz hakkındaki standart bilgileri göster - Ryan Babchishin


Cevaplar:


Sadece aşağıdaki gibi bir komut kullanın: ethtool eth0 Gerekli bilgileri almak için Ör:

$ sudo ethtool eth0 | grep Speed

Speed: 1000Mb/s

146
2017-11-30 16:23



Tüm arayüzlerinizin tam hızına sahip olmak istiyorsanız, bu komutu kullanabilirsiniz: for i in $(netstat -i | cut -f1 -d" " | tail -n+3) ; do echo "$i: $(ethtool "$i" | grep Speed | sed 's/Speed://g')" ; done - Code-Source
"Hız: Bilinmiyor!" yanlış ethXX adını kullanıyor olabilirsiniz, çift çekmeye değer :) - rogerdpack


Ethtool eksik olduğunda bilgileri çekirdekten kullanmak mümkündür:

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

Eth0 adlı arayüz için örnek:

cat /sys/class/net/eth0/speed

55
2018-04-15 15:39



Not: Sadece 2.6.33 sürümünden beri kullanılabilir - zhaorufei
"Geçersiz argüman" alıyorum - wi1
@ wi1: Kullanımı netleştirmek için bir örnek eklendi. Şimdi çalışıyor mu? - Christian
@Christian Evet, teşekkürler, ama sadece okuduğum bazı arayüzlerim bekleniyor, ben de iyiyim - wi1
RHEL6 bunu 2.6.32 çekirdeğine geri gönderdi. - Dan Pritts


NOT: adam sayfası mii-tool bu yasal uyarıya sahip:

This program is obsolete. For replacement check ethtool.

kullanım mii-tool anlaşmalı ağ hızını izlemek için.

Ör.

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

40
2017-11-30 20:58



Debian tabanlı sistemler için ethtool varsayılan olarak yüklenmez. Fakat mii-tool Temel "net araçlar" paketinin bir parçası olarak. Bu benim için en iyi çözümdü. - mivk
Ben bu araç için mii-aracı için adam sayfasında görüyorum "Bu program eskidir. Geçerli medya sadece 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD ve 10baseT-HD ethernet kartları. Değiştirmek için kontrol ettool." : | - rogerdpack
Süre mii-tool 'müzakere edildi' 100baseTx-FD akış denetimi, bağlantı tamam ', ikisi de ethtool ve cat /sys/class/net/eth…/speed aynı fikirde olmak '1000Mb / s Tam çift yönlü '. Bu, USB 3.0 denetleyicisi, yani ASIX AX88179 (Linux için 'ax88179_178a' sürücüsü) içindir. - Anton Samsonov


Burada bazı harika cevaplar var, sadece birkaç seçenek daha eklemek istedim.

1. Bunun ne istediğini tam olarak bilmiyorum (başka yollardan oku). Fakat NIC'in gerçek dünya performansını bilmek istiyorsanızBilgisayarınızın olması gerektiği söylediklerinden ziyade, iperf'i kullanabilirsiniz. Bunu genellikle yaparım - çünkü asla bilemezsiniz. Geçenlerde 1 GB'lik bir NIC aldım, bunun sadece 672Mbps hızında aktarıldığını ancak uplink'in 1Gb olduğunu gördüm. İyi ki kontrol ettim.

İki bilgisayara ihtiyacınız olacak.

Bir bilgisayarda, sunucu modunda iperf'i çalıştırın:

iperf -s

Diğer yandan, istemci modunda iperf'i çalıştırın:

iperf -c 192.168.0.10

Tam dubleks hızını görmek istiyorsanız, bunun yerine şunu deneyin:

iperf -d -c 192.168.0.10

Sunucuların IP adresi için 192.168.0.10 yerine

2. Ubuntu sistemlerinde, /var/log/kern.log Çekirdek olaylarının sınırlı bir şekilde kaydedilmesi. Değiştiğinde bağlantı hızını ve NIC'nin durumunu kaydeder. Eminim diğer dağıtımlar muhtemelen benzer bir şey yapar ya da bunu yapmak için ayarlanabilir.

$ 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. Muhtemelen asla, bu kadar uzağa gitmen gerekmeyecek, ama sen c kodu yazabilir Bu hızı elde etmek için. Test edilmiş çalışma ve kök gerekli değildir.

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);
}

20
2017-10-01 10:28





Khaled'in belirttiği gibi, ethtool'ü sadece argüman olarak bir arayüzle çalıştırabilmelisiniz. Bu, desteklenen hızları, reklamı yapılan hızları, mevcut hızı ve diğer birçok şeyi de listeler:

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

Sen de koşabilirsin dmesgve arayüzünüz için grep, ancak sisteminiz uzun bir süredir çalışıyorsa ve bu geçerli arabellek artık bu bilgiye sahip değilse bu işe yaramayabilir (bu durumda, eski / var / log / dmesg dosyasını grep etmeniz gerekir) .* Dosyalar):

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

18
2017-11-30 16:40





Aşağıdaki komutu kullan

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

başvurmak bu


8
2017-11-28 10:17



Kök erişiminiz olmadığında kullanışlıdır. - Mehdi Sadeghi
Günlük üzerine yazılmadığında faydalıdır. Talihsiz durumdayım. - zhaorufei
Bu kutuda süper kullanıcı özel olmadığında elime geçti. Teşekkürler! - Sankalp


Ayrıca gelecekteki referanslar için, ethtool'daki hız alanının NIC tarafından desteklenen maksimum hızı verdiğini ve mi-aracının NIC'nin çalıştığı gerçek hızı verdiğini fark ettim.

[ 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

GÜNCELLEME: Bir süre sonra, mi-aracının modası geçmiş ve kullanımdan kaldırılmış olduğu gibi doğru hızı geri döndürmediğini ve etik kuralların müzakere edilen hızı döndürdüğünü öğrendik.


1
2017-11-11 11:59