2012-04-19 7 views
6

मान लें कि मेरे पास 3 एनआईसी वाली मशीन है; वाईफाई, एथ, और 3 जी। मैं अनुमानित गति (या बैंडविड्थ) प्राप्त करने की कोशिश कर रहा हूं जिस पर एक लिंक इन इंटरफेस के लिए किसी दिए गए समय पर संचारित कर सकता है और यह निर्धारित कर सकता है कि कौन सा सबसे तेज़ है। एक निश्चित समय पर फिर से। मैं एक लिनक्स कर्नेल मॉड्यूल लिख रहा हूँ। मैं कर्नेल संस्करण 2.6.35 का उपयोग कर रहा हूँ। क्या उपलब्ध बैंडविड्थ को मापने के लिए वैसे भी है? यहां तक ​​कि अगर यह एक परीक्षण पिंग भेजने कुछ को मापने के लिए जैसे हम मापने विलंबता में क्या ... मतलबमैं लिनक्स सी में एक इंटरफेस की अधिकतम बैंडविड्थ कैसे प्राप्त कर सकता हूं?

उत्तर

0

वास्तव में मापने, यह एक कठिन समस्या है। यदि आप सभी तीन एनआईसी को एक सामान्य साइट से कनेक्ट करते हैं, तो स्पष्ट सीधा परीक्षण प्रत्येक एनआईसी के माध्यम से कुछ डेटा स्थानांतरित करना और उन्हें समय देना है।

हालांकि, सामान्य रूप से समस्या की कठिनाई को देखते हुए, यह प्रत्येक एनआईसी और समय के माध्यम से यूडीपी प्रसारित करने के लिए "पर्याप्त" हो सकता है। यह किसी भी प्रदर्शन को प्रकट करने में विफल रहता है, लेकिन यह कुछ भी नहीं है।

0

लिनक्स पर, आप पढ़ना चाहिए/proc/net/देव (आप कुल पैकेज है/भेजी गई बाइट। अपने 'शुरू' और 'अंत' समय इन नंबर प्राप्त करें)

http://linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html http://www.linuxjournal.com/article/8381

(स्रोत यहां: How can I get the current network interface throughput statistics on Linux/UNIX?)