क्षमता योजना के लिए यादृच्छिक रूप से ट्रेंडिंग I / O प्रदर्शन


11

जहां मैं काम करता हूं, हमारे पास कई "बड़े लोहे" सर्वर हैं जो कि एक्सपी हाइपरवाइजर का उपयोग करके कई आभासी मशीनों की मेजबानी के लिए उपयोग किया जाता है। ये आमतौर पर 32 जीबी रैम, दोहरी क्वाड कोर प्रक्रियाओं और आई / ओ क्षमता के gobs के साथ तेजी से डिस्क के साथ कॉन्फ़िगर किए गए हैं।

हम उस समय के बिंदु पर हैं जहां मौजूदा हार्डवेयर कॉन्फ़िगरेशन दाँत में थोड़ा लंबा हो रहा है और यह बाहर जाने का समय है और स्रोत बड़ा, तेज़ और शिनियर नया हार्डवेयर।

जैसा कि ऊपर उल्लेख किया गया है, मौजूदा किट को 32 जीबी रैम के साथ तैनात किया गया है और इसने वीएम की संख्या को प्रभावी रूप से सीमित कर दिया है जिसे हम एक मेजबान के लिए तैनात कर सकते हैं।

हालांकि नए हार्डवेयर की जांच में, यह स्पष्ट है कि आप सिंगल चेसिस में 64, 72 या यहां तक ​​कि 96GB के साथ अधिक से अधिक रैम प्राप्त कर सकते हैं। जाहिर है, यह हमें किसी दिए गए मेजबान को अधिक मशीनें प्राप्त करने की अनुमति देगा जो हमेशा एक जीत है। अब तक किए गए विश्लेषण से पता चलता है कि सीमित कारक अब डिस्क सबसिस्टम में स्थानांतरित हो जाएगा।

समस्या अब यह है कि हम कहाँ पर हैं, इसका कुछ विचार करने की कोशिश कर रहे हैं ... उपयोग के आधार पर, हम जानते हैं कि हम I / O बैंडविड्थ के संदर्भ में सीमित नहीं हैं, अधिक-तो, यादृच्छिक I की संख्या / ओ संचालन जो पूरा किया जा सकता है .. हम anecdotally जानते हैं कि एक बार जब हम इस बिंदु पर हिट करते हैं तो iowait आकाश रॉकेट पर जा रहा है और पूरे मशीन का प्रदर्शन कुत्तों पर जा रहा है।

अब मैं जो सवाल पूछ रहा हूं, उसका क्रैक्स है, क्या किसी को मौजूदा I / O प्रदर्शन को सही तरीके से ट्रैक करने / ट्रेंड करने के तरीके के बारे में पता है, विशेष रूप से यादृच्छिक I / O ऑप्स की संख्या के संबंध में?

मैं वास्तव में एक मीट्रिक प्राप्त करने की कोशिश कर रहा हूं "यह कॉन्फ़िगरेशन सफलतापूर्वक यादृच्छिक संख्या I / O अनुरोधों को संभाल सकता है, और हम वर्तमान में (औसतन) Z ops के शिखर के साथ Y ops कर रहे हैं"।

अग्रिम में धन्यवाद!

जवाबों:


5

sarयहाँ अच्छी तरह से काम करता है; यह प्रति सेकंड पढ़े / लिखे गए क्षेत्रों के साथ-साथ लेनदेन की संख्या भी एकत्र करेगा, जिसका उपयोग तब किया जा सकता है जब आप अपेक्षाकृत अच्छी सटीकता के साथ अपने आईओ कार्यभार को फिर से दोहरा सकते हैं (अनुपात / रीड / राइट लिखने के मामले में, साथ ही साथ लेनदेन का आकार, जो कि है कैसे "यादृच्छिक" अपने आईओ है) में कारक का निर्धारण। यह सही नहीं है, लेकिन मेरे अनुभव में आप जिस तरह का अनुमान लगा रहे हैं उसे करने के लिए यह काफी अच्छा काम करता है।


2

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

उपकरण के संदर्भ में आपके पास ओपनसोर्स की दुनिया में गैन्ग्लिया, ज़ेनोस, नगिओस, और कई अन्य विक्रेता उत्पाद हैं।

आप उन KPI को ट्रैक करने, मापने और संग्रहीत करने के लिए कॉन्फ़िगर कर सकते हैं, जिन्हें आप रुचि रखते हैं और फिर समय-समय पर उन पर रिपोर्ट करते हैं।

रैम उपयोग पर आपके प्रश्नों को देखते हुए, यह स्मृति आँकड़े, स्वैप उपयोग और सीपीयू को भी शामिल करने के लिए समझ में आता है, इसलिए आप उन्हें एक ही समय अवधि के लिए बोर्ड भर में तुलना कर सकते हैं और देख सकते हैं कि जो सीमित है, आदि।

एक बार जब आप डेटा कैप्चर कर रहे होते हैं, तो आप रिपोर्टिंग के लिए एक अच्छे बड़े DB में यह सब स्टोर कर सकते हैं, संभवतः ऐतिहासिक डेटा, जैसे कि। 6 महीने के लिए हर 5 सेकंड मीट्रिक स्टोर करें, फिर मिनट से, फिर 5, फिर प्रति घंटे, जैसा कि आप आगे पीछे जाते हैं। उस तरह की चीज को क्रोन, ऑटोसिस आदि के माध्यम से स्क्रिप्ट और चलाया जा सकता है।

उन रिपोर्टों से आपको पता चल जाएगा कि प्रबंधन क्या चाहता है - यानी। सुंदर रेखांकन के साथ कुछ।

और दैनिक प्रबंधन के लिए आप कंसोल के माध्यम से चार्ट / आंकड़ों पर वास्तविक समय की जानकारी देख सकते हैं कि आप किसी भी समय कैसे प्रदर्शन कर रहे हैं।


आपके प्रतिक्रिया के लिए धन्येवाद। मुझे जो सबसे बड़ी परेशानी मिल रही है, वह वास्तव में ऑप्स की संख्या को सटीक रूप से ट्रैक कर रही है। यानी, सब कुछ मैं रिपोर्ट में ले जाया जा रहा है डेटा की राशि पर ले जाया जा रहा है, या iowait आदि आदि। यह बिल यहाँ फिट करने के लिए प्रतीत नहीं होता है ..
Keiran Holloway

2

हम कलेक्ट का उपयोग करते हैं क्योंकि हम सभी आवश्यक सूचनाओं को एक ही फाइल में खींच सकते हैं और ज़रूरत के अनुसार आँकड़ों को फिर से दोहरा सकते हैं। यह आपको रिकॉर्डिंग अंतराल, संदर्भ स्विच, मेमोरी आँकड़ों के अनुसार IOPS की संख्या को देखने देगा। आप इसे प्रति डिस्क नीचे तोड़ सकते हैं या सिस्टम पर एक समग्र नज़र डाल सकते हैं। कलेक्ट भी चमक का समर्थन करता है।

यह कुल सिस्टम प्रदर्शन का अवलोकन प्राप्त करने के लिए एक महान उपकरण है। सौभाग्य से, SATA डिस्क से आम तौर पर 200-300 IOPS के बीच रैंडम एक्सेस करते समय टॉप आउट किया जाता है।


किसी को भी 15k RPM SAS ड्राइव के साथ बहुत अनुभव था?
कीर्तन होलोवे

2

हम उसी तरह से रिकॉर्ड करते हैं जैसे हम अन्य सभी मैट्रिक्स करते हैं।

  • SNMP का उपयोग करके डेटा को होस्ट से खींचा जाता है। हमारे NAS / SAN बॉक्स यह मूल रूप से करते हैं। हम सभी लिनक्स होस्ट पर नेट -स्नैम्प का उपयोग करते हैं , जो USB-DISKIO-MIB से यह जानकारी प्रदान करता है ।

  • डेटा संग्रहीत किया जाता है (आरआरडी प्रारूप में) और कैक्टि का उपयोग करके रेखांकन किया गया है । कुछ डिस्क IO टेम्प्लेट हमें सामान्य वर्तमान, औसत और पीक फॉर्मेट में प्रदर्शित ट्रांजेक्शन काउंट और साइज देते हैं।

इन मेट्रिक्स के रूप में प्रयोग परिमित के रूप में जरूरी नहीं हैं iostat/ dstat/ sarएक मेजबान पर। लेकिन यह आग है और भूल जाते हैं, जो स्वचालित रूप से सेटअप हो जाता है जब एक नई मशीन चालू हो जाती है, केंद्रीय रूप से संग्रहीत होती है और भविष्य के संदर्भ के लिए उपलब्ध रहती है।

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

क्या मैं वास्तव में एक मीट्रिक प्राप्त करने की कोशिश कर रहा हूं, "यह कॉन्फ़िगरेशन सफलतापूर्वक यादृच्छिक संख्या I / O अनुरोधों को संभाल सकता है [..]"।

इसके साथ कुछ समस्याएं हैं:

  • अनुक्रमिक I / O से यादृच्छिक I / O को अलग करना और परिमाणित करना बहुत कठिन है। चूंकि दोनों के बीच मूलभूत अंतर डिस्क प्लेटर पर संग्रहीत ब्लॉकों का भौतिक स्थान है। आप लेन-देन के आकार से एक शिक्षित अनुमान लगा सकते हैं, इस आधार पर कि बहुत सारे छोटे लेनदेन संभवतः डिस्क के बारे में बताई गई छोटी फ़ाइलों से संबंधित हैं। लेकिन कोई गारंटी नहीं है। यह डिस्क पर किसी एकल फ़ाइल या आस-पास के ब्लॉक से क्रमिक रूप से डेटा की थोड़ी मात्रा को पढ़ सकता है।

  • मैट्रिक्स रिकॉर्ड करने से आपको बहुत अच्छी तस्वीर मिल जाएगी कि आज आपकी प्रतिबद्धताएं क्या हैं, वे समय के साथ कैसे बदल गए हैं और इस तरह वे भविष्य में कैसे बदलेंगे। यह आपको नहीं बताएगा कि छत क्या है। कम से कम इससे पहले कि बहुत देर न हो जाए। यह निर्धारित करने के लिए आपको कुछ गणित (अपने हार्डवेयर स्पेक्स से), बेंचमार्किंग (मैं bonnie++खुद को पसंद कर रहा हूँ ) करने की आवश्यकता है और यह उन लोगों के बारे में कुछ तार्किक विचार रखने में मददगार है, जो उन डॉमयू के लिए कर रहे हैं / जिनका उपयोग किया जा रहा है।


1

आपके स्टोरेज बैकएंड (IBM SVC / DS8000) के आधार पर आप सीधे यादृच्छिक IOPS से संबंधित आंकड़े खींचने में सक्षम हो सकते हैं।

सर्वर से आंकड़े खींचने के लिए, आप nmon का उपयोग कर सकते हैं । यह मुफ़्त है (बीयर में)। मूल रूप से AIX के लिए IBM द्वारा विकसित, लिनक्स पर भी चलता है।


सभी भंडारण सीधे जुड़े हुए हैं, डेबियन मेजबानों पर चल रहे हैं। कुछ भी FOSS अच्छा है।
कीरान होलोवे

1

यदि लोग SAR I का उपयोग करते हैं तो कम से कम आशा है कि आप अपने डेटा को कभी-कभी कुछ सेकंड के लिए नमूना बना रहे हैं। जब मैं एक बार / दूसरे बार कलेक्ट आई सैंपल का उपयोग करता हूं। जहां तक ​​आप यादृच्छिक I / O पर कितना अच्छा काम कर रहे हैं, यह मापने के लिए, Robin Miller dt (google it) जैसे टूल का उपयोग करें और आप आसानी से यादृच्छिक I / Os का एक बहुत उत्पन्न कर सकते हैं और फिर केवल कितने को देखने के लिए कलेक्ट से माप सकते हैं। प्रति सेकंड कर सकते हैं। एक विशिष्ट डिस्क आमतौर पर 200-300 I / Os / सेकंड की अधिकतम होती है, जो घूर्णी विलंबता पर बहुत अधिक आधारित होती है। ब्लॉक आकार का कम से कम प्रभाव था, क्योंकि डिस्क में 1/2 क्रांति की प्रतीक्षा में सही स्थान पर होना बाकी सब पर हावी हो जाता है।

btw - आयोवाइट सबसे गलतफहमी मापों में से एक है। इसका सीपीयू लोड से कोई लेना-देना नहीं है, इसका मतलब यह है कि सीपीयू कुछ और नहीं कर रहा था जबकि आई / ओ हो रहा था। वास्तव में यदि आप 100% आयोवाइट पर हैं तो अनिवार्य रूप से इसका मतलब है कि आप लगभग 100% निष्क्रिय हैं!

-निशान

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.