2 लिनक्स मेजबान के बीच विलंबता का निवारण कैसे करें


16

2 लिनक्स मेजबानों के बीच विलंबता लगभग .23ms है। वे एक स्विच द्वारा जुड़े हुए हैं। पिंग और विंडशार्क विलंबता संख्या की पुष्टि करते हैं। लेकिन, मुझे इस विलंबता के कारण कोई दृश्यता नहीं है। मुझे कैसे पता चल सकता है कि मेजबान ए या बी या स्विच या केबल पर एनआईसी के कारण विलंबता है?

अद्यतन: .23 एमएस विलंबता मेरे मौजूदा अनुप्रयोग के लिए खराब है, जो बहुत उच्च आवृत्ति पर संदेश भेजता है और मैं यह देखने की कोशिश कर रहा हूं कि क्या इसे .1ms में लाया जा सकता है।


2
आप क्यों सोचते हैं .23ms खराब विलंबता है यह भयानक विलंबता है।
SpacemanSpiff

6
उन्हें सीधे एक क्रॉसओवर केबल के साथ कनेक्ट करें। यदि आपके पास समान विलंबता है, तो इसका कारण मेजबानों में से एक है। यदि आपके पास समान विलंबता नहीं है तो इसका कारण स्विच या केबलिंग है।
जोकेवेटी

1
सहमत, क्या समस्या है? 0.23ms विलंबता दो मशीनों के एक दूसरे के बगल में बैठने की तुलना में कम है।
माइकल हैम्पटन

@joeqwerty यदि दो सिस्टम क्रॉसओवर केबल के माध्यम से जुड़े हुए हैं, तो वे एक दूसरे का पता कैसे लगाते हैं? क्या ARP अभी भी काम करता है? क्या टीसीपी अभी भी काम करता है?
Jimm

1
वे वैसे ही काम करेंगे जैसे वे दोनों एक ही स्विच से जुड़े थे। केबल केवल भौतिक माध्यम है जिस पर वे संवाद करेंगे। OSI मॉडल की सभी 7 लेयर्स (या DARPA मॉडल की 4 लेयर्स, यदि आप चाहें तो) ठीक उसी तरह काम करेंगी जैसी अभी करती हैं।
joeqwerty

जवाबों:


15

आम तौर पर, आप सिस्टम, विशेष रूप से विलंबता और घबराहट के बीच नेटवर्क के प्रदर्शन का एक दृश्य प्राप्त करने के लिए iperf उपयोगिता के कुछ उन्नत स्विच का उपयोग कर सकते हैं ...

क्या यह यूडीपी या टीसीपी-आधारित संदेश धारा है?

मैंने आपके सेटअप के बारे में अधिक जानकारी की आवश्यकता पर ऊपर टिप्पणी की। यदि यह एक कम विलंबता संदेश अनुप्रयोग है, तो ट्यूनिंग और अनुकूलन तकनीकों की एक पूरी दुनिया है जो हार्डवेयर, ड्राइवर और ओएस ट्विकिंग को फैलाती है। लेकिन वास्तव में, हमें अधिक जानकारी की आवश्यकता है।

संपादित करें:

ठीक है, तो यह टीसीपी संदेश है। क्या आपने कोई /etc/sysctl.confपैरामीटर संशोधित किया है ? आपके भेजे / प्राप्त बफ़र्स क्या दिखते हैं? अकेले एक रियलटाइम कर्नेल का उपयोग करने से बहुत कुछ नहीं होगा, लेकिन यदि आप उस बिंदु पर जाते हैं जहां आप सीपीयू के लिए बाधा डाल रहे हैं, तो मैसेजिंग ऐप ( chrt) की रीयलटाइम प्राथमिकता को बदलना ( और संभवतः tuned-admसिस्टम की प्रोफाइल को संशोधित करना मदद कर सकता है ...

यह एक सामान्य ईएल 6 प्रणाली है, इसलिए प्रदर्शन ट्यूनिंग बेसलाइन सेट करने का एक आसान तरीका ट्यून ढांचे के भीतर उपलब्ध सिस्टम के प्रदर्शन प्रोफ़ाइल को दूसरे में बदलना शामिल है । फिर वहां से निर्माण।

आपके मामले में:

yum install tuned tuned-utils
tuned-adm profile latency-performance

अंतर दिखाने वाला एक त्वरित मैट्रिक्स:

क्या आप हमें हार्डवेयर के बारे में बता सकते हैं? सीपीयू, एनआईसी, मेमोरी के प्रकार?

तो, आपके लिंक का परीक्षण करना दिलचस्प हो सकता है ... इस iperf परीक्षण का प्रयास करें ...

एक सिस्टम पर, एक iperf UDP श्रोता शुरू करें। दूसरे पर, पहले के लिए एक कनेक्शन खोलें ... एक त्वरित लाइन-गुणवत्ता परीक्षण।

# Server2
[root@server2 ~]# iperf -su   

# Server1
[root@server1 ~]# iperf -t 60 -u -c server2

मेरे मामले में, कम घबराना और कम पिंग समय:

------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  224 KByte (default)
------------------------------------------------------------
[  3] local 192.168.15.3 port 5001 connected with 172.16.2.152 port 36312
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0-20.0 sec  2.50 MBytes  1.05 Mbits/sec   0.012 ms    0/ 1785 (0%)

PING server1 (172.16.2.152) 56(84) bytes of data.
64 bytes from server1 (172.16.2.152): icmp_seq=1 ttl=63 time=0.158 ms
64 bytes from server1 (172.16.2.152): icmp_seq=2 ttl=63 time=0.144 ms

मैं त्रुटियों के लिए हार्डवेयर और इंटरफेस की जाँच करूँगा। यदि आप चाहते हैं, तो सिस्टम के बीच स्विच को समाप्त करें और देखें कि एक सीधा कनेक्शन कैसा दिखता है। आप उच्च घबराना (विचरण) नहीं चाहते हैं, इसलिए जाँच करें।

लेकिन ईमानदारी से, यहां तक ​​कि आपके वर्तमान सेटअप पर होने वाले पिंग समय के साथ, जो आपके एप्लिकेशन को मारने के लिए पर्याप्त नहीं होना चाहिए। मैं आपके भेजने / प्राप्त करने वाले बफ़र्स को ट्यूनिंग करने के रास्ते पर चलूँगा। देखें: net.core.rmem_max, net.core.wmem_maxऔर उनके चूक ...

निम्नलिखित में से कुछ की तरह /etc/sysctl.conf(कृपया स्वाद के लिए):

net.core.rmem_default = 10000000
net.core.wmem_default = 10000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

यह एक विलंबता संवेदनशील संदेश अनुप्रयोग है। विशिष्ट OS कर्नेल-2.6.32-279.11.1.el6.x86_64 होगा, हालांकि मैंने होस्ट को कर्नेल 3.2.23-rt37.56.el6rt.x86_64 के साथ लोड किया है, यह देखने के लिए कि क्या इससे कोई फर्क पड़ेगा। लेकिन यह बहुत ज्यादा ही था। संदेश का आकार 1KB- 3KB के बीच भिन्न होता है। सभी संचार टीसीपी के माध्यम से होता है।
१५:०५

क्या OS Red Hat MRG है?
ewwhite 15

अभी इसका प्लेन रेडहैट 6.3 है, लेकिन एमआरजी भी एक संभावना है। जैसा कि मैंने ऊपर उल्लेख किया है, मैंने दोनों की कोशिश की, लेकिन विलंबता समान थी। मुझे किस तरह के ट्यूनबल्स से संबंधित होना चाहिए?
जिम

मैं हार्डवेयर और एनआईसी सेटअप जानना चाहता हूँ। स्विच मॉडल मदद करता है। ट्यूनबल्स के लिए, 6.3 पर देखने के लिए स्पष्ट क्षेत्र आपकी tuned-admप्रोफ़ाइल है।
ewwhite

दोहरी ईथरनेट नियंत्रकों: एमुलेक्स कॉर्पोरेशन OneConnect 10Gb NIC (Rev 02) और 16 कोर एएमडी परिवार 10h प्रोसेसर, प्रत्येक 2400 मेगाहर्ट्ज।
Jimm
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.