আমি কীভাবে আমার এনআইসির গতি যাচাই করব?


119

আমি সবেমাত্র লিনাক্সে একটি নতুন গিগাবিট নেটওয়ার্ক ইন্টারফেস কার্ড (এনআইসি) ইনস্টল করেছি। এটি সত্যিই গিগাবিট গতিতে সেট করা আছে কিনা আমি কীভাবে বলব? আমি দেখতে পাচ্ছি ethtoolগতি সেট করার জন্য একটি বিকল্প আছে, তবে আমি কীভাবে এটির বর্তমান গতি প্রতিবেদন করব তা বুঝতে পারি না।


1
ইথিওল-এইচ বলেছেন: এথটোল ডিএভিএনএম ডিভাইস সম্পর্কে মানক তথ্য প্রদর্শন করুন
রায়ান বাবচিশিন

উত্তর:


165

ethtool eth0প্রয়োজনীয় তথ্য পেতে কেবল একটি কমান্ড ব্যবহার করুন: উদা:

$ sudo ethtool eth0 | grep Speed

Speed: 1000Mb/s

2
আপনি যদি তাদের সমস্ত গতিসম্পন্ন ইন্টারফেসের পুরো তালিকা পেতে চান তবে আপনি এই কমান্ডটি ব্যবহার করতে পারেন:for i in $(netstat -i | cut -f1 -d" " | tail -n+3) ; do echo "$i: $(ethtool "$i" | grep Speed | sed 's/Speed://g')" ; done
কোড-উত্স

যদি আপনি "গতি: ​​অজানা!" পান ডাবল চেকের মূল্য আপনি ভুল এথএক্সএক্সএক্স নাম ব্যবহার করতে পারেন :)
রজারডপ্যাক

75

যখন ইথোল অনুপস্থিত থাকে তখন কার্নেল থেকে তথ্য ব্যবহার করা সম্ভব:

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

Eth0 নামক ইন্টারফেসের উদাহরণ:

cat /sys/class/net/eth0/speed

5
দ্রষ্টব্য: কেবল
২.6.৩৩

6
"অবৈধ যুক্তি"
পাচ্ছেন

@ ডাব্লুআইআই: ব্যবহারের বিষয়টি স্পষ্ট করার জন্য একটি উদাহরণ যুক্ত করেছে। এটা কি এখন কাজ করছে?
খ্রিস্টান


RHEL6 এটি তাদের 2.6.32 কার্নেলটিতে ব্যাকপোর্ট করেছে।
ড্যান প্রীটস 21

42

দ্রষ্টব্য: ম্যান mii-toolপেজটির এই দাবিটি অস্বীকার করেছে:

This program is obsolete. For replacement check ethtool.

mii-toolআলোচ্য নেটওয়ার্কের গতি দেখতে ব্যবহার করুন ।

যাত্রা।

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

15
ডেবিয়ান ভিত্তিক সিস্টেমগুলির জন্য, ethtoolডিফল্টরূপে ইনস্টল করা হয় না। তবে mii-toolএটি প্রয়োজনীয় "নেট-সরঞ্জাম" প্যাকেজের অংশ হিসাবে। সুতরাং এটি আমার জন্য সেরা সমাধান ছিল।
mivk

1
আমি মী-টুলের জন্য ম্যান পৃষ্ঠায় এটি দেখতে পাচ্ছি "এই প্রোগ্রামটি অচল Val : |
রজারডপ্যাক

যদিও mii-toolপ্রতিবেদন দরকষাকষির 100 baseTx-এফডি প্রবাহ নিয়ন্ত্রণ, লিঙ্ক ওকে ', উভয় ethtoolএবং cat /sys/class/net/eth…/speed' একমত 1000 মেগাবাইট / সেকেন্ড পূর্ণ দ্বৈত '। এটি একটি ইউএসবি 3.0 কন্ট্রোলারের জন্য, যেমন এএসআইএক্স এএক্স 88179 (লিনাক্সের জন্য 'ax88179_178a' ড্রাইভার)।
আন্তন স্যামসনভ

23

এখানে কিছু দুর্দান্ত উত্তর রয়েছে, আমি আরও কয়েকটি বিকল্প যুক্ত করতে চেয়েছিলাম।

1. আমি জানি এটি আপনি যা চেয়েছিলেন ঠিক তা নয় (অন্যান্য উপায়ে পড়ুন)। কিন্তু যদি আপনি আপনার এনআইসি এর বাস্তব জগতে কর্মক্ষমতা জানতে চাই বরং কি আপনার কম্পিউটারের বলছেন এটা করা উচিত চেয়ে, আপনি iperf ব্যবহার করতে পারেন। আমি সাধারণত এটি করি - কারণ আপনি কখনই জানেন না। আমি সম্প্রতি একটি 1 জিবি এনআইসি কিনেছি যা কেবল 672 এমবিপিএসে স্থানান্তরিত হয়েছিল তবে এটি আপলিংকটি 1 জিবি। ভাল জিনিস আমি পরীক্ষা করেছিলাম।

আপনার দুটি কম্পিউটারের দরকার হবে।

কম্পিউটার একটিতে, সার্ভার মোডে আইপিফার চালান:

iperf -s

অন্যদিকে ক্লায়েন্ট মোডে আইপিফার চালান:

iperf -c 192.168.0.10

আপনি যদি পুরো দ্বৈত গতি দেখতে চান তবে পরিবর্তে এটি ব্যবহার করে দেখুন:

iperf -d -c 192.168.0.10

সার্ভারের আইপি ঠিকানার জন্য 192.168.0.10 এর বিকল্প দিন

২. উবুন্টু সিস্টেমে /var/log/kern.logকার্নেল ইভেন্টের সীমিত লগিং রয়েছে। এটি কোনও এনআইসির পরিবর্তনের সময় লিঙ্কের গতি এবং স্থিতি রেকর্ড করবে। আমি নিশ্চিত অন্যান্য ডিস্ট্রিবিউশনগুলি সম্ভবত তেমন কিছু করে বা এটি করার জন্য সেটআপ করা যেতে পারে।

$ 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

৩. আপনার সম্ভবত কখনও দরকার হবে না, তবে আপনাকে আরও বেশিদূর যেতে হবে না, তবে গতি পেতে আপনি সি কোড লিখতে পারেন । পরীক্ষিত কাজ এবং রুট প্রয়োজন হয় না।

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

1
অপ্রত্যাশিত পারফরম্যান্সের বিষয়ে আপনার পরিণামটি কী ছিল?
রজারডপ্যাক

আপনি যেভাবে বলেছিলেন আইপিআরপি ব্যবহার করে উত্তরটি যদি কেউ বর্তমান গতি পেতে চায় এবং কেবল সম্ভাব্য গতি নয়।
এড্রয়েড-জিলা

18

খালেদ যেমন উল্লেখ করেছেন, আপনার যুক্তি হিসাবে ঠিক ইন্টারফেসের সাথে ইথল চালানো উচিত। এটি সমর্থিত গতি, বিজ্ঞাপনযুক্ত গতি, বর্তমান গতি এবং অন্যান্য জিনিসের একটি গুচ্ছও তালিকাভুক্ত করবে:

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

আপনি dmesgআপনার ইন্টারফেসের জন্য রানও করতে পারেন এবং গ্রেপ করতে পারেন , তবে আপনার সিস্টেমটি দীর্ঘ সময় ধরে চলতে থাকলে এবং বর্তমান বাফারের কাছে সেই তথ্য না থাকলে এটি কার্যকর নাও হতে পারে (সেক্ষেত্রে আপনাকে পুরানো / সংস্করণটি গ্রেপ করতে হবে /log/dmesg.* ফাইল):

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

10

কমান্ড নীচে ব্যবহার করুন

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

এটি উল্লেখ করুন


আপনার যখন রুট অ্যাক্সেস না থাকে তখন কার্যকর।
মেহেদী সাদেঘি

কার্যকর যখন লগ ওভাররাইট করা হয় না। আমি দুর্ভাগ্যজনক পরিস্থিতিতে আছি।
zhaorufei

যখন বাক্সে আমার কাছে সুপারভাইজার না ছিল তখন এটি কার্যকর হয়েছিল। ধন্যবাদ!
সঙ্কল্প

1

ভবিষ্যতের রেফারেন্সের জন্য আমি লক্ষ্য করেছি যে এথটিলে গতির ক্ষেত্রটি এনআইসি দ্বারা সমর্থিত সর্বাধিক গতি দেয় এবং এমআইআই-সরঞ্জামটি প্রকৃত গতি দেয় যার উপর এনআইসি চলছে।

[ 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

আপডেট: কিছুক্ষণ পরে এমআই-সরঞ্জামটি সেকেলে এবং অবহেলিত হওয়ায় এবং ইথিওল আলোচনার গতিটি ফিরিয়ে দিচ্ছিল বলে সঠিক গতিটি ফিরে আসেনি found


-6

ethtool eth0আমার জন্য কাজ। উদাহরণ:

$ethtool eth0 |grep -i speed
Speed: 1000Mb/s

1
উত্তর দেওয়ার আগে দয়া করে অন্যান্য উত্তরগুলি পড়ুন। এটি ছড়িয়ে ছয় বছর আগে বলা হয়েছে এবং এটি with with টি উর্ধ্বতন সহ গ্রহণযোগ্য উত্তর।
সোভেন

যে কেউ নির্বিশেষে তার উত্তর পোস্ট করতে পারে। প্রদত্ত উত্তরগুলি কারওর জন্য নাও কার্যকর হতে পারে, তাই কেবল আমার বিকল্পের সাথে আমার জন্য উপযুক্ত এমন একটি বিকল্প যুক্ত করতে চেয়েছিল।
ড্রাগন

আপনার উত্তরটি গ্রহণযোগ্যটির মতো হুবহু একই এবং মান যুক্ত করে না।
সোভেন

পূর্ববর্তী বিকল্পগুলিতে ইথল কমান্ডটি কোথায় উল্লেখ করা হয়েছে?
ড্রাগন

একেবারে উপরে উত্তরটি দেখুন তার পাশে সবুজ রঙের টিক দিয়ে। এটি স্বীকৃত উত্তর এবং এটি খুব স্পষ্টভাবে ব্যবহার করে ethtool
সোভেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.