VMXNET3 को बफर साइजिंग और मेमोरी उपयोग प्राप्त होता है


12

पृष्ठभूमि

हमारे पास एक ऐसी घटना थी जिसमें एक विंडोज फेलओवर क्लस्टर में रुकावट आई। एक पोस्टमार्टम से पता चला कि नोड को "हटा दिया गया" जैसा कि इस लेख में वर्णित है

हमने हाल ही में इस क्लस्टर को पूरी तरह से हमारे VMware पर्यावरण में माइग्रेट किया है, और ऐसा प्रतीत होता है कि ऊपर वर्णित घटना आउटेज का कारण हो सकती है।

संबंधित VMware KB लेख इस बारे में Small Rx Buffersऔर Rx Ring #1सेटिंग बढ़ाने के बारे में बात करता है , लेकिन सावधान करता है कि ये बहुत अधिक बढ़ने से मेजबान पर मेमोरी ओवरहेड बढ़ सकती है।

Network Interface\Packets Received Discardedहमारे ~ 150 विंडोज वीएम के लिए प्रदर्शन काउंटरों के ऑडिट के बाद , 16 मेहमानों में से 22 vNIC के पास कुछ छूट गए पैकेट थे।

एक छोटी सी पर्याप्त राशि जिसे मैं अतिरिक्त मेमोरी उपयोग के साथ मेजबानों पर कर लगाने के बारे में चिंतित नहीं हूं, लेकिन मैं यह समझना चाहता हूं कि इन सेटिंग्स के लिए मेमोरी का उपयोग कैसे किया जाता है और मेमोरी कहां से आती है।

प्रशन

  1. बफ़र्स और रिंग आकार की संख्या के बीच क्या संबंध है?
  2. इन सेटिंग्स के दिए गए मूल्यों के लिए उपयोग की जाने वाली मेमोरी की मात्रा की गणना कैसे की जाती है?
  3. चूँकि ये सेटिंग NIC में ही अतिथि OS के भीतर हैं, मुझे लगता है कि वे ड्राइवर सेटिंग्स हैं। इससे मुझे लगता है कि इस्तेमाल की गई रैम पीड्ड या नॉन-पेड पूल हो सकती है।
    1. क्या ये सही है?
    2. यदि हां, तो क्या मुझे इस बारे में चिंतित होना चाहिए?
  4. क्या मैं यहाँ ध्यान नहीं दे रहा हूँ?

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

इन प्रश्नों में से कुछ (शायद सभी) VMware या वर्चुअलाइजेशन के लिए विशिष्ट नहीं हो सकते हैं।


मैंने वास्तव में परतदार सामान देखा है जब भौतिक एनआईसी के टीसीपी ऑफलोड इंजन दुर्व्यवहार कर रहा था और वीएम अजीब व्यवहार का प्रदर्शन कर रहे थे, एक लीड हो सकता है, जिसका आप अनुसरण कर सकते हैं।
स्पेसमैनस्पीफ

@SpacemanSpiff यह जांचने लायक है, लेकिन 150 में से केवल 16 VMs ही व्यवहार प्रदर्शित कर रहे हैं। उन 16 को 12 नोड क्लस्टर में फैलाया गया है, और वे सभी कभी-कभी यातायात के उच्च फटने को प्राप्त करते हैं जो ऐसा लगता है कि केबी लेख में वर्णित लक्षणों को ट्रिगर करता है। इनमें से कुछ विंडोज क्लस्टर हैं इसलिए वे डीआरएस के साथ नहीं चलते हैं, अन्यथा मैं इस बात पर गौर कर सकता हूं कि सभी प्रभावित मेहमानों ने वीमोशन होने से पहले एक विशिष्ट होस्ट पर गिराए गए पैकेट दिखाए। मैं फिर से जांच करूंगा और देखूंगा कि क्या मुझे कोई सहसंबंध मिल सकता है। धन्यवाद।
रिश्वतखोर

माइक्रोबुरस्टिंग शायद, यह क्या हार्डवेयर है?
स्पेसमैनस्पीफ

@SpacemanSpiff आईबीएम सर्वर, कुछ अलग मॉडल और संशोधन, यह भी सुनिश्चित नहीं है कि कौन से एनआईसी, मैं कल बारीकियों की जांच कर सकता हूं।
रिश्वतखोर

जवाबों:


5

बफ़र्स और रिंग आकार की संख्या के बीच क्या संबंध है?

वे संबंधित हैं, लेकिन स्वतंत्र हैं। आरएक्स "रिंग" स्मृति में बफ़र्स के एक सेट को संदर्भित करता है जो मेजबान (हाइपरविजर) से अतिथि (विंडोज वीएम) तक आने वाले नेटवर्क पैकेट को पास करने के लिए एक कतार के रूप में उपयोग किया जाता है। मेमोरी को नेटवर्क ड्राइवर द्वारा अतिथि में आरक्षित किया जाता है, और यह होस्ट मेमोरी में मैप हो जाता है।

जैसे ही नए नेटवर्क पैकेट मेजबान पर आते हैं, वे रिंग में अगले उपलब्ध बफर पर रख देते हैं। फिर, मेजबान अतिथि में एक IRQ चलाता है, जिसके लिए अतिथि चालक रिंग से पैकेट निकालकर जवाब देता है, और इसे अतिथि OS के नेटवर्क स्टैक में भेजता है, जो संभवतः इसे प्राप्त करने के लिए इच्छुक अतिथि एप्लिकेशन को भेजता है। मान लेते हैं कि पैकेट काफी धीमी गति से आ रहे हैं, और अतिथि चालक उन्हें काफी तेजी से संसाधित कर रहा है, रिंग में हमेशा एक मुफ्त स्लॉट होना चाहिए। हालाँकि, यदि पैकेट बहुत तेजी से आ रहे हैं, या अतिथि उन्हें बहुत धीरे-धीरे संसाधित कर रहा है, तो अंगूठी पूर्ण हो सकती है, और पैकेट गिराए जा सकते हैं (जैसा कि आपने अपनी स्थिति में देखा है)।

रिंग का आकार बढ़ाने से इस समस्या को कम करने में मदद मिल सकती है। यदि आप इसे बढ़ाते हैं, तो एक बार में रिंग में अधिक स्लॉट उपलब्ध होंगे। यह दूसरी सेटिंग, "स्मॉल आरएक्स बुफ़र्स" में बहस करता है, जो उपलब्ध बफ़र्स की कुल राशि है जिसका उपयोग रिंग में स्लॉट्स को भरने के लिए किया जा सकता है। रिंग में स्लॉट के रूप में कम से कम कई बफ़र्स होने की आवश्यकता है। आमतौर पर आप अधिक चाहते हैं। जब अतिथि अतिथि नेटवर्क स्टैक को देने के लिए रिंग से बफ़र लेता है, तो हो सकता है कि वह तुरंत ड्राइवर को वापस न लौटाए। यदि ऐसा होता है, तो अंगूठी को भरने के लिए स्पेयर बफ़र्स होने का मतलब है कि आप पैकेट गिराए बिना लंबे समय तक जा सकते हैं।

आरएक्स रिंग # 1 / छोटे आरएक्स बफ़र्स का उपयोग गैर-जंबो फ़्रेम के लिए किया जाता है। यदि आपके पास एक डिफ़ॉल्ट एनआईसी कॉन्फ़िगरेशन है, तो यह एकमात्र रिंग है जिसका उपयोग किया जाएगा।

इन सेटिंग्स के दिए गए मूल्यों के लिए उपयोग की जाने वाली मेमोरी की मात्रा की गणना कैसे की जाती है?

यह मानते हुए कि आप गैर-जंबो फ़्रेमों के बारे में बात कर रहे हैं, प्रत्येक बफर को पूरे नेटवर्क पैकेट को स्टोर करने के लिए काफी बड़ा होना चाहिए, लगभग 1.5kb। इसलिए यदि आपके पास 8192 बफ़र उपलब्ध हैं, तो वह 12MB का उपयोग करेगा। एक बड़ी अंगूठी भी अधिक मेमोरी का उपयोग करेगी, लेकिन डिस्क्रिप्टर छोटे (बाइट्स) हैं, इसलिए यह वास्तव में बफ़र्स हैं जिनके बारे में आपको चिंता करना होगा।

चूँकि ये सेटिंग NIC में ही अतिथि OS के भीतर हैं, मुझे लगता है कि वे ड्राइवर सेटिंग्स हैं। इससे मुझे लगता है कि इस्तेमाल की गई रैम पीड्ड या नॉन-पेड पूल हो सकती है।

हां, यह एक नॉन-पेड पूल है। यदि रिंग बफ़र्स को पृष्ठांकित किया गया था, तो यह संभवत: गिराए गए पैकेट में परिणाम होगा, जबकि बफ़र्स को वापस पृष्ठांकित किया जा रहा था।

क्या मैं यहाँ ध्यान नहीं दे रहा हूँ?

मुझे यकीन नहीं है कि यह आपकी स्थिति के लिए प्रासंगिक है, लेकिन यह ध्यान देने योग्य है कि एक बड़ी अंगूठी नेटवर्क xx पथ के कैश फ़ुटप्रिंट को बढ़ाएगी। माइक्रोबेनचर्च में, आप देखेंगे कि एक बड़ी रिंग आमतौर पर प्रदर्शन को नुकसान पहुंचाती है। कहा कि, वास्तविक जीवन के अनुप्रयोगों में, अगर एक पैकेट गिरा दिया जाता है, तो यह आमतौर पर गति फटने में एक छोटे से प्रदर्शन के लाभ से बड़ा सौदा होता है।

स्रोत: मैंने VMware में काम किया।


1
धन्यवाद रोजर, उत्कृष्ट पहला जवाब। मैं इस कंपनी में कुछ समय के लिए नहीं रहा हूं, इसलिए यह मुद्दा मेरे रडार से दूर रहा है, लेकिन पूर्णता के लिए, क्या उनके अधिकतमकरण के लिए कोई मेमोरी उपयोग चिंता है? KB लेख ऐसा लगता है जैसे आप बहुत सारी मेमोरी का उपयोग कर सकते हैं, लेकिन ऐसा लगता है कि यह राशि बहुत छोटी होगी। मैं यह पूछता हूं क्योंकि यह भी स्पष्ट नहीं है कि परीक्षण और त्रुटि के अलावा इन मूल्यों को कैसे आकार दिया जाए, इसलिए अगर अधिकतम / थोड़ा नीचे नहीं है, तो उन्हें अधिकतम पर सेट करना आसान हो सकता है।
१ri:१17 बजे

1
पुन :: स्मृति उपयोग, दो बातें मैं नोट करूंगा: 1) यदि आप जंबो फ्रेम का उपयोग नहीं कर रहे हैं, तो मैं मानता हूं, अधिकतम सेटिंग पर स्मृति की मात्रा अभी भी बहुत छोटी है। यदि आप जंबो फ्रेम का उपयोग कर रहे हैं, तो बफर का आकार लगभग 9kb है और इसलिए आप अधिक मेमोरी का उपयोग कर रहे हैं। 2) एक गैर-पृष्ठांकित पूल में उपलब्ध स्मृति की मात्रा होस्ट पर स्मृति की कुल मात्रा से छोटी है। मैं यहाँ एक विशेषज्ञ नहीं हूँ, लेकिन इस लिंक में उपलब्ध स्मृति की गणना करने के तरीके के बारे में बहुत व्यापक जानकारी दी गई है: blogs.technet.microsoft.com/markrussinovich/2009/03/10/……
रोजर जैकबसन

बहुत बहुत धन्यवाद। मुझे आशा है कि यह उत्तर भविष्य में किसी की मदद करता है (शायद यह मुझे भी होगा अगर मैं फिर से इस में
चलाऊं

0

मेरे पास बिंदु 1-2-3 के लिए कोई उत्तर नहीं है, लेकिन आप Vmware होस्ट कॉन्फिग के बारे में अपने वर्चुअल एनिनर के साथ देख सकते हैं। अगर वह वीसीपी है तो वह सामान समझेगा :)

आपको वास्तव में अपने होस्ट की जांच करनी होगी क्योंकि विंडोज़ की समस्या मेजबान पर हो सकती है, अतिथि में नहीं।

कई हार्डवेयर फ़ीचर हैं जो आपकी समस्याओं को स्पष्ट कर सकते हैं, Directpath io, rss, vcpu, पॉवर मैनेजमेंट स्कीम ...

मैं आपको कुछ लिंक दे सकता हूँ जो आपकी वर्चुअल टीम की मदद करें, या आप :)

यह लिंक होस्ट के बारे में है http://buildvirtual.net/tuning-esxi-host-networking-connigature/

और यह वसा पीडीएफ:

http://www.vmware.com/pdf/Perf_Best_Practices_vSphere5.0.pdf

और यह एक आरएसएस के बारे में है:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2008925


उत्तर के लिए धन्यवाद, लेकिन मैं एक वीसीपी हूं। यह वास्तव में होस्ट कॉन्फिग के बारे में बिल्कुल नहीं है। मैंने जो Microsoft आलेख जोड़ा है, वह बताता है कि प्रश्न में प्रदर्शन काउंटर 0 से अधिक नहीं होना चाहिए, और यह कई VMs पर है। मैं vNIC सेटिंग्स के बारे में समझ हासिल करने की कोशिश कर रहा हूं, जो VMware KB लेख में बताई गई है।
रिश्वतखोर

-1

मैं आपको पूरी तरह से खोजने और सही पृष्ठों पर इंगित करने की स्थिति में नहीं हूं: इसलिए मैं आपको स्वयं विवरण देखने के लिए कह रहा हूं ... (क्षमा करें)

क्लस्टर पर विफलता में 4 सेटिंग्स हैं जिन्हें ट्वेक किया जा सकता है; और वे बफ़र्स या पृष्ठांकित या गैर-पृष्ठांकित को प्रभावित नहीं करेंगे ... यह जिस तरह से क्लस्टर पर विफल होता है, वह एक नोड "हटाए" पर विचार करने का निर्णय लेता है। ये सेटिंग्स हैं:

सेमस्बनेटडेल

हो सकता है कि वे आपकी समस्या का समाधान न करें, लेकिन इनका इस्तेमाल करने से आप इस समय परेशानी से बाहर निकल सकते हैं ...

सोमवार को वापस आने पर, यदि आपके और प्रश्न हैं, तो मैं इस पोस्ट को वापस देखूंगा

HTH, एडविन।


पुनश्च: क्या आप हमें बता सकते हैं कि आपके द्वारा चलाए जा रहे विंडोज का संस्करण क्या है?
एडविन वैन मिर्लो

यह विंडोज 2008 था। मुझे वीएमवेयर (इन सभी महीनों के बाद) से जवाब मिला है, लेकिन मैं उस कंपनी में भी नहीं हूं जहां मैं ऐसा हुआ था। उत्तर सीधा नहीं है और मुझे उनके उत्तर के माध्यम से पढ़ने और कुछ पोस्ट करने का अर्थ है, लेकिन मेरे पास समय नहीं था। मैं क्लस्टर के बारे में आपके सुझावों की सराहना करता हूं लेकिन मैं इस समय उन्हें आज़मा नहीं सकता।
रिश्वतवादी

मैं केवल ध्यान देता हूं कि मूल पोस्ट कुछ महीने पुरानी है, जो कि एंड्रॉइड-ऐप में बहुत स्पष्ट नहीं थी ... मैं अगली बार करीब से देखूंगा ... इस बीच मेरा जवाब अभी भी अन्य उपयोगकर्ताओं के लिए मान्य है जो खोज सकते हैं इसी तरह के अनुभवों के लिए।
एडविन वैन मिर्लो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.