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


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


101
2017-11-30 16:20


উত্স


ethtool -h বলেছেন: ethtool DEVNAME ডিভাইস সম্পর্কে মানক তথ্য প্রদর্শন - Ryan Babchishin


উত্তর:


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

$ sudo ethtool eth0 | grep Speed

Speed: 1000Mb/s

146
2017-11-30 16:23



যদি আপনি তাদের গতির সাথে আপনার সমস্ত ইন্টারফেসগুলির সম্পূর্ণ তালিকা পেতে চান তবে আপনি এই কমান্ডটি ব্যবহার করতে পারেন: 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
আপনি যদি "গতি: ​​অজানা!" পান আপনি ভুল পরীক্ষা ethTH নাম ব্যবহার করা হতে পারে, একটি ডবল চেক মূল্য :) - rogerdpack


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

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

ইন্টারফেস নাম eth0 জন্য উদাহরণ:

cat /sys/class/net/eth0/speed

55
2018-04-15 15:39



দ্রষ্টব্য: শুধুমাত্র 2.6.33 সংস্করণ থেকে পাওয়া যায় - zhaorufei
"অবৈধ যুক্তি" পেয়ে - wi1
@ wi1: ব্যবহারের সুস্পষ্ট করার জন্য একটি উদাহরণ যোগ করা হয়েছে। এটা এখন কাজ করছে? - Christian
@ ক্রিশ্স্টিয়ান হ্যাঁ এটা ধন্যবাদ, কিন্তু আমার কিছু ইন্টারফেস যা আমি পড়তে পেরেছি তাই আশা করা যায় তাই আমি সব ভাল - wi1
RHEL6 তাদের 2.6.32 কার্নেলের মধ্যে এটি backported করেছে। - Dan Pritts


বিঃদ্রঃ: জন্য মানুষের পাতা mii-tool এই দাবিত্যাগ আছে:

This program is obsolete. For replacement check ethtool.

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

যাত্রা।

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

40
2017-11-30 20:58



ডেবিয়ান ভিত্তিক সিস্টেমের জন্য, ethtool ডিফল্টরূপে ইনস্টল করা হয় না। কিন্তু mii-tool অপরিহার্য "নেট-সরঞ্জাম" প্যাকেজের অংশ হিসাবে। তাই এই আমার জন্য সবচেয়ে ভাল সমাধান ছিল। - mivk
আমি ম্যানি টুলের জন্য এই ম্যান পেইজে এটি দেখি "এই প্রোগ্রামটি অপ্রচলিত। বৈধ মিডিয়া শুধুমাত্র 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD এবং 10baseT-HD ইথারনেট কার্ডগুলি রয়েছে। প্রতিস্থাপনের জন্য চেক করুন ethtool।" : | - rogerdpack
যদিও mii-tool রিপোর্ট 'আলোচনা 100baseTx-FD প্রবাহ নিয়ন্ত্রণ, লিঙ্ক ঠিক আছে ', উভয় ethtool এবং cat /sys/class/net/eth…/speed রাজী '1000এমবি / গুলি সম্পূর্ণ দ্বৈত '। এটি একটি USB 3.0 কন্ট্রোলারের জন্য, যেমন ASIX AX88179 (লিনাক্সের জন্য 'ax88179_178a' ড্রাইভার)। - Anton Samsonov


এখানে কিছু মহান উত্তর আছে, আমি শুধু আরো কিছু অপশন যোগ করতে চেয়েছিলেন।

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

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

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

iperf -s

অন্যদিকে, ক্লায়েন্ট মোডে iperf চালান:

iperf -c 192.168.0.10

আপনি যদি সম্পূর্ণ দ্বৈত গতি দেখতে চান তবে এটি পরিবর্তে চেষ্টা করুন:

iperf -d -c 192.168.0.10

সার্ভার আইপি ঠিকানার জন্য 192.168.0.10 সাবস্টিটিউট করুন

2। উবুন্টু সিস্টেমে, /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

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

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





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

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, এবং আপনার ইন্টারফেসের জন্য grep, কিন্তু এটি আপনার সিস্টেমে দীর্ঘ সময় ধরে চলতে থাকলে কাজ করবে না এবং বর্তমান বাফারের আর সেই তথ্য থাকবে না (যে ক্ষেত্রে, আপনাকে পুরোনো / var / log / dmesg grep করতে হবে .* নথি পত্র):

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





কমান্ড ব্যবহার করুন

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

পড়ুন এই


8
2017-11-28 10:17



আপনার রুট অ্যাক্সেস না থাকলে দরকারী। - Mehdi Sadeghi
লগ overwritten না হলে দরকারী। আমি দুর্ভাগ্যজনক অবস্থায় আছি। - zhaorufei
এই বাক্সে superuser privs ছিল না যখন আমি সহজে এসেছিলেন। ধন্যবাদ! - Sankalp


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

[ 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

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


1
2017-11-11 11:59





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

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

-5
2017-07-11 11:39



উত্তর দেওয়ার আগে অন্য উত্তর অনুগ্রহ করে পড়ুন। এই ছদ্মবেশ ছয় বছর আগে বলা হয়েছে এবং 66 আপভোট সঙ্গে গৃহীত উত্তর। - Sven♦
এক এখনও নির্বিশেষে তার উত্তর পোস্ট করতে পারেন। প্রদত্ত উত্তর কেউ জন্য কাজ নাও হতে পারে, তাই শুধু আমার অবস্থানে উপযুক্ত যে অন্য বিকল্প যোগ করতে চেয়েছিলেন। - dragon
আপনার উত্তর গ্রহণযোগ্য এক হিসাবে একই এবং মান যোগ করা হয় না। - Sven♦
পূর্ববর্তী অপশন উল্লেখ ethtool কমান্ড কোথায়? - dragon
এটি পাশে সবুজ টিক সঙ্গে খুব শীর্ষ উত্তর তাকান। এই গৃহীত উত্তর এবং এটি খুব পরিষ্কারভাবে ব্যবহার করা হয় ethtool। - Sven♦