"ক্যাট / প্রোক / নেট / দেব" এবং "আইপি-এস লিঙ্ক" বিভিন্ন পরিসংখ্যান দেখায়। কোনটি মিথ্যা বলছে?


8

আমি লক্ষ্য করেছি যে /proc/net/devএথ 3 এর 1753 dropএস রয়েছে। ip -s linkশো 0 dropped। কেন পার্থক্য আছে? বিভিন্ন তথ্য কোথা থেকে আসছে? কোনটি সঠিক?

আমি অতিরিক্ত তথ্য ছিনিয়ে নিয়েছি।

# uname -a
Linux example09 2.6.32-5-amd64 #1 SMP Thu Mar 22 17:26:33 UTC 2012 x86_64 GNU/Linux

# lsb_release -a
Distributor ID: Debian
Description:    Debian GNU/Linux 6.0.4 (squeeze)
Release:        6.0.4
Codename:       squeeze

# cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
  eth3:1258629839430 12545003042    0 1753    0     0          0  10594858 6666255952912 10026428444    0    0    0     0       0          0

# ip -s link
5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:15:17:96:0b:61 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    244248462  3955476484 0       0       0       10595400
    TX: bytes  packets  errors  dropped carrier collsns
    683632524  1436809416 0       0       0       0

একই অবস্থা. এটা তোলে ইউজার-স্পেস প্রোগ্রামে একটি 32 বিট পূর্ণসংখ্যা রোলওভার মত দেখায় ( ifconfigএখানে একই জিনিস আছে) কিন্তু অনুযায়ী bc, 1258629839430%(2^32)হয় 204421702তাই আমি আছি, 244248462 না নিশ্চিত করুন যে এটা (যতক্ষণ না আপনি দৌড়ে ip~ 40MB পরে)
DerfK

@DerfK হ্যাঁ, প্রায় 40MB সাউন্ড শোনাচ্ছে। মাত্র কয়েক সেকেন্ড ছিল, তবে এটি একটি ব্যস্ত সার্ভার।
আবলছাত

উত্তর:


11

একটি স্কুইজ মেশিনে, বিশ্বাস করুন /proc/net/dev। এটি একই ডেটা দেখার আরও সহজ এবং নির্ভরযোগ্য উপায়।

বাদ দেওয়া গণনার বিশেষ ক্ষেত্রে, আমি সঠিক সমস্যাটি ব্যাখ্যা করতে পারি না, তবে আমি এটি অন্যান্য স্কিজে বাক্সেও পর্যবেক্ষণ করতে পারি। আমি যদি যত্ন করে থাকি তবে আমি এটিকে ডেবিয়ানকে বাগ হিসাবে রিপোর্ট করব (এবং কেউ পরামর্শ দিলে এবং এখানে ফিরে রিপোর্ট করবেন)।

উভয়ই এর tx_droppedক্ষেত্র থেকে নম্বর নিয়ে যায় net_device_stats। ইন /proc/net/dev, লাইন দ্বারা উৎপন্ন হয় dev_seq_printf_statsথেকে net/core/dev.c

ipনেটলিঙ্কের মাধ্যমে যথারীতি চলে যায় এবং নেটওয়ার্ক ডিভাইসের পরিসংখ্যানগুলির জন্য আরও স্পষ্টভাবে rtnetlink। কাঠামোটি ইউজারস্পেসে চলে গেছে rtnl_link_stats,।

নেটিভ স্ট্রাকচারটি unsigned longএর rtnetlinkব্যবহার করে __u32, কম-বেশি অন্তর্নিহিত রূপান্তরটি সম্পন্ন হয় copy_rtnl_link_stats

এটা তোলে rx_packets 32 বিট সংস্করণ গঠন শুরু থেকে ব্যবহার করা হচ্ছে ধরতে বেশ সহজ: থাকাকালীন /proc/net/devশো 1258629839430, ipশো 244248462, যা গত 32 বিট (প্লাস আরো কয়েকটি কমান্ড মধ্যে বাইট) এর মোটামুটিভাবে সংশ্লিষ্ট; প্যাকেট গণনা সঙ্গে একই জিনিস।

এখানে প্রথম 2 ক্ষেত্রের জন্য ক্রাঞ্চিংয়ের সংখ্যাটি এখানে রয়েছে:

% echo '1258629839430 % (2^32)'|bc; echo 244248462
204421702
244248462
% echo '12545003042 % (2^32)'|bc; echo 3955476484 
3955068450
3955476484

প্রবর্তনের চারপাশে বিষয়গুলি আরও ভাল হয়েছে IFLA_STATS64:

  • কার্নেলের মধ্যে (প্রতিশ্রুতি 10708f37ae729baba9b67bd134c3720709d4ae62, v2.6.35 এবং পরবর্তী অবধি উপলব্ধ)
  • আইপ্রাউট 2-তে (8864ac9dc5bd5ce049280337deb21191673a02d0 থেকে, v2.6.33-36 এবং তারপরে আপস্ট্রিমে উপলব্ধ)।

দুর্দান্ত, আমি ঠিক এটিই খুঁজছিলাম।
12:54 এ অবল্যাখ

-2

বেশিরভাগ ডিভাইসে, / proc / নেট / দেব হার্ডওয়্যার কাউন্টার থেকে পড়ে। অন্যান্য স্ট্যাটাসগুলি ডিভাইসের কাঠামোর নেটওয়ার্ক স্ট্যাক থেকে আপডেট করা হয়।

ড্রপগুলি মেলানো না হওয়ার সম্ভাবনা বেশি কারণ সেগুলি হার্ডওয়্যার দ্বারা তৈরি করা যায়: প্যাকেট ম্যাক গন্তব্য ডিভাইসের নয় বা মাল্টিকাস্ট নয় এবং ডিভাইসটি প্রত্যাখ্যানযোগ্য নয়: হার্ডওয়্যার সরাসরি প্যাকেটটি ফেলে দেয়, স্ট্যাকটি কখনই জানতে পারে না যে এটি বিদ্যমান isted

শেষ অবধি, আপনি ভাবছেন যে এগুলি সিঙ্ক আপ করবেন না বা সর্বদা হার্ডওয়্যার স্ট্যাটাস ব্যবহার করবেন না? স্ট্যাক যখন কোনও কারণে প্যাকেটটি ফেলে দেয় তখন এটি হার্ডওয়্যার কাউন্টারকে আপডেট করতে পারে না এবং ডিবাগিংয়ের জন্য প্যাকেটটি কোথায় ফেলেছিল তা ট্র্যাক করার জন্য প্রতিটি খুঁজে পেতে পারে তা জানা দরকারী।

আশাকরি এটা সাহায্য করবে

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