स्केलिंग
ERDDAP™- हेवी लोड, ग्रिड, क्लस्टर्स, फेडरेशन और क्लाउड कम्प्यूटिंग
ERDDAP:
ERDDAP™एक वेब अनुप्रयोग और एक वेब सेवा है जो विविध स्थानीय और दूरस्थ स्रोतों से वैज्ञानिक डेटा को एकत्रित करती है और सामान्य फ़ाइल स्वरूपों में डेटा के सबसेट को डाउनलोड करने और ग्राफ और मैप बनाने का एक सरल, सुसंगत तरीका प्रदान करती है। यह वेब पेज भारी से संबंधित मुद्दों पर चर्चा करता हैERDDAP™ग्रिड, क्लस्टर, federations और क्लाउड कंप्यूटिंग के माध्यम से अत्यंत भारी भार से निपटने के लिए उपयोग भार और संभावनाओं की पड़ताल करता है।
मूल संस्करण जून 2009 में लिखा गया था। इसमें कोई महत्वपूर्ण बदलाव नहीं हुआ है। यह आखिरी अपडेट 2019-04-15 था।
अस्वीकरण
इस वेब पेज की सामग्री बॉब सिमोन व्यक्तिगत राय हैं और जरूरी नहीं कि सरकार या सरकार की किसी भी स्थिति को प्रतिबिंबित करें।National Oceanic and Atmospheric Administration। गणना सरल है, लेकिन मुझे लगता है कि निष्कर्ष सही हैं। क्या मैं दोषपूर्ण तर्क का उपयोग करता हूं या मेरी गणना में गलती करता हूं? यदि ऐसा है तो गलती अकेले मेरा है। कृपया सुधार के साथ एक ईमेल भेजेंerd dot data at noaa dot gov।
हेवी लोड / कंस्ट्रक्शन
भारी उपयोग के साथ, एक स्टैंडअलोनERDDAP™रोका जाएगा (कम से कम संभावना) द्वारा:
रिमोट सोर्स बैंडविड्थ
- दूरस्थ डेटा स्रोत की बैंडविड्थ - यहां तक कि एक कुशल कनेक्शन के साथ (उदाहरण के लिए, माध्यम सेOPeNDAP) जब तक दूरस्थ डेटा स्रोत में बहुत अधिक बैंडविड्थ इंटरनेट कनेक्शन नहीं होता है, तब तकERDDAP'प्रतिक्रियाओं को कैसे तेजी से नियंत्रित किया जाएगाERDDAP™डेटा स्रोत से डेटा प्राप्त कर सकते हैं। एक समाधान डेटासेट को कॉपी करना हैERDDAPशायद हार्ड ड्राइव के साथEDDGridकॉपीयाEDDTableCopy।
ERDDAPसर्वर बैंडविड्थ
- असहायERDDAPसर्वर में एक बहुत ही उच्च बैंडविड्थ इंटरनेट कनेक्शन है,ERDDAP'प्रतिक्रियाओं को कैसे तेजी से नियंत्रित किया जाएगाERDDAP™डेटा स्रोतों से डेटा प्राप्त कर सकते हैं और कैसे तेजी सेERDDAP™ग्राहकों को डेटा वापस कर सकते हैं। एकमात्र समाधान एक तेज़ इंटरनेट कनेक्शन प्राप्त करना है।
स्मृति
- यदि एक साथ कई अनुरोध हैं,ERDDAP™स्मृति से बाहर निकल सकते हैं और अस्थायी रूप से नए अनुरोधों को मना कर सकते हैं। (ERDDAP™इससे बचने के लिए और अगर ऐसा होता है तो परिणामों को कम करने के लिए कुछ तंत्र हैं।) इसलिए सर्वर में अधिक मेमोरी बेहतर है। 32-बिट सर् वर पर, 4+ जीबी वास्तव में अच्छा है, 2 जीबी ठीक है, कम अनुशंसित नहीं है। 64-बिट सर्वर पर, आप लगभग पूरी तरह से स्मृति के बहुत सारे द्वारा समस्या से बच सकते हैं। देखें\-Xmx और -Xms सेटिंग्सके लिएERDDAP/Tomcat। AnERDDAP™8GB मेमोरी के साथ 64-बिट सर्वर वाले कंप्यूटर पर भारी उपयोग हो रहा है और -Xmx 4000M के लिए सेट शायद ही कभी, अगर कभी स्मृति द्वारा बाधित है।
हेड ड्राइव बैंडविड्थ
- सर्वर की हार्ड ड्राइव पर संग्रहीत डेटा तक पहुंच दूरस्थ डेटा तक पहुंचने की तुलना में बहुत तेज़ है। यहां तक कि अगरERDDAP™सर्वर में एक बहुत ही उच्च बैंडविड्थ इंटरनेट कनेक्शन है, यह संभव है कि हार्ड ड्राइव पर डेटा तक पहुंचना बोतलबंद होगा। आंशिक समाधान तेजी से उपयोग करना है (उदाहरण के लिए, 10,000 आरपीएम) चुंबकीय हार्ड ड्राइव या एसएसडी ड्राइव (यदि यह अर्थ लागत-वार बनाता है) । एक अन्य समाधान विभिन्न ड्राइव पर विभिन्न डेटासेट स्टोर करना है, ताकि संचयी हार्ड ड्राइव बैंडविड्थ बहुत अधिक हो।
Too Many Files.
- बहुत सारी फाइलों में एककैशनिर्देशिका —ERDDAP™सभी छवियों को कैश करता है, लेकिन केवल कुछ प्रकार के डेटा अनुरोधों के लिए डेटा को कैश करता है। डेटासेट के लिए कैश डायरेक्टरी के लिए यह संभव है कि इसमें बड़ी संख्या में फाइलें अस्थायी रूप से हो जाएं। यह देखने के लिए अनुरोध को धीमा कर देगा कि क्या फ़ाइल कैश में है या नहीं (वास्तव में!) ।<कैश मिनट> inसाइटमैपआपको यह निर्धारित करने की अनुमति देता है कि जब तक फ़ाइल को डिलीट होने से पहल े कैश में किया जा सकता है। एक छोटी संख्या की स्थापना इस समस्या को कम कर देगी।
सीपीयू
- केवल दो चीजें सीपीयू समय लेती हैं:
- NetCDF4 और 4HDF5 अब डेटा के आंतरिक संपीड़न का समर्थन करते हैं। एक बड़े संकुचितNetCDF4/4HDF5 डेटा फ़ाइल 10 या अधिक सेकंड ले सकती है। (यह एक कार्यान्वयन दोष नहीं है। यह संपीड़न की प्रकृति है।) इसलिए, संपीड़ित फ़ाइलों में संग्रहीत डेटासेट के साथ डेटासेट के लिए एकाधिक एक साथ अनुरोध किसी भी सर्वर पर गंभीर तनाव डाल सकता है। यदि यह एक समस्या है, तो समाधान असंपीड़ित फ़ाइलों में लोकप्रिय डेटासेट को स्टोर करना है, या अधिक कोर वाले सीपीयू के साथ सर्वर प्राप्त करना है।
- ग्राफ़ बनाना (नक्शे सहित) लगभग 0.2 - 1 प्रति ग्राफ। इसलिए यदि ग्राफ के लिए कई एक साथ अद्वितीय अनुरोध थे (WMSग्राहक अक्स र 6 एक साथ अनुरोध करते हैं!) , वहाँ एक CPU सीमा हो सकता है। जब एकाधिक उपयोगकर्ता चल रहे हैंWMSग्राहक, यह एक समस्या बन जाती है।
एकाधिक पहचानERDDAPलोड संतुलन के साथ एस?
अक्सर सवाल उठता है: "भारी भार से निपटने के लिए, मैं एकाधिक समान सेट कर सकता हूंERDDAPलोड संतुलन के साथ एस? यह एक दिलचस्प सवाल है क्योंकि यह जल्दी से मूल के लिए हो जाता हैERDDAPडिजाइन त्वरित उत्तर "नहीं" है। मुझे पता है कि एक निराशाजनक जवाब है, लेकिन कुछ प्रत्यक्ष कारण हैं और कुछ बड़े मूलभूत कारण क्यों मैंने डिजाइन किया हैERDDAP™एक अलग दृष्टिकोण का उपयोग करने के लिए (संघटनERDDAPS, इस दस्तावेज़ के थोक में वर्णित) जो मैं मानता हूँ वह बेहत र समाधान है।
कुछ प्रत्यक्ष कारण क्यों आप एकाधिक समान क्यों स्थापित नहीं कर सकते / नहीं कर सकतेERDDAPएस हैं:
- देनाERDDAP™जब यह पहली बार फाइल में डेटा की श्रेणियों को खोजने के लिए उपलब्ध हो जाता है तो प्रत्येक डेटा फ़ाइल को पढ़ता है। इसके बाद यह जानकारी एक इंडेक्स फाइल में स्टोर करती है। बाद में, जब डेटा के लिए उपयोगकर्ता अनुरोध आता है,ERDDAP™उस सूचकांक का उपयोग यह पता लगाने के लिए करता है कि कौन से फ़ाइलों को अनुरोधित डेटा के लिए देखने के लिए। यदि वहाँ कई समान थेERDDAPs, वे प्रत्येक इस अनुक्रमण को कर रहे थे, जो प्रयास किया गया है। नीचे वर्णित federated प्रणाली के साथ, अनुक्रमण केवल एक बार किया जाता है, एक द्वाराERDDAPS.
- कुछ प्रकार के उपयोगकर्ता अनुरोधों के लिए (उदाहरण के लिए.ncपीडीएफ फाइलें) ERDDAP™जवाब भेजे जाने से पहले पूरी फाइल बनाना होगा। तोERDDAP™इन फ़ाइलों को थोड़े समय के लिए कैश करता है। यदि एक समान अनु रोध आता है (जैसा कि यह अक्सर करता है, विशेष रूप से उन छवियों के लिए जहां यूआरएल एक वेब पेज में एम्बेडेड है) ,ERDDAP™उस कैश्ड फ़ाइल का पुन: उपयोग कर सकते हैं। एकाधिक समान प्रणाली मेंERDDAPउन कैश्ड फ़ाइलों को साझा नहीं किया जाता है, इसलिए प्रत्येकERDDAP™अनावश्यक और बेकार ढंग से फिर से बनाना.nc, .png, or .pdf files. नीचे वर्णित federated प्रणाली के साथ, फ़ाइलों को केवल एक बार बनाया जाता है, एक द्वाराERDDAPS, and reused.
- ERDDAPसदस्यता प्रणाली एकाधिक द्वारा साझा करने के लिए सेट नहीं हैERDDAPS. उदाहरण के लिए, यदि लोड बैलेंसर एक उपयोगकर्ता को एक उपयोगकर्ता को भेज देता हैERDDAP™और उपयोगकर्ता डेटासेट की सदस्यता लेता है, फिर दूसराERDDAPउस सदस्यता के बारे में नहीं जानते होंगे। बाद में, यदि लोड बैलेंसर उपयोगकर्ता को अलग-अलग में भेज देता हैERDDAP™और उसकी सदस्यता की एक सूची के लिए पूछता है, अन्यERDDAP™नहीं कहेगा (उसे दूसरे ERED पर एक डुप्लिकेट सदस्यता बनाने के ल िए अग्रणीDAP) । नीचे वर्णित federated प्रणाली के साथ, सदस्यता प्रणाली को बस मुख्य, सार्वजनिक, समग्र द्वारा संभाला जाता है।ERDDAP।
हाँ, उनमें से प्रत्येक समस्या के लिए मैं सकता हूँ (महान प्रयास के साथ) एक समाधान इंजीनियर (जानकारी साझा करने के लिएERDDAPs) लेकिन मुझे लगता हैफेडरेशन-ऑफ-ERDDAPदृष्टिकोण (इस दस्तावेज़ के थोक में वर्णित) एक बेहतर समग्र समाधान है, आंशिक रूप से क्योंकि यह अन्य समस्याओं के साथ सौदा करता है कि एकाधिक-identical-ERDDAPS-with-a-load-संतुलन दृष्टिकोण भी दुनिया में डेटा स्रोतों की विकेन्द्रीकृत प्रकृति को संबोधित करना शुरू नहीं करता है।
यह सरल तथ्य यह है कि मैंने डिजाइन नहीं किया था स्वीकार करना सबसे अच्छा हैERDDAP™एकाधिक समान के रूप में तैनात किया जानाERDDAPलोड बैलेंसर के साथ मैं लगातार डिजाइनERDDAP™अच्छी तरह से काम करने के लिएERDDAPमैं मानता हूँ कि कई फायदे हैं। विशेष रूप से, एक संघ का संघERDDAPS पूरी तरह से डेटा केन्द्रों की विकेन्द्रीकृत, वितरित प्रणाली है कि हम वास्तविक दुनिया में है के साथ गठबंधन है (विभिन्न IOOS क्षेत्रों, या विभिन्न कोस्टवॉच क्षेत्रों, या NCEI के विभिन्न हिस्सों, या 100 अन्य डेटा केंद्रों के बारे में सोचते हैं।NOAA, या विभिन्न NASA DAACs, या दुनिया भर में 1000 के डेटा सेंटर) । दुनिया के सभी डेटा केंद्रों को बताने के बजाय कि उन्हें अपने प्रयासों को छोड़ने और उनके सभी डेटा को केंद्रीकृत "डाटा झील" में रखने की आवश्यकता है। (यहां तक कि अगर यह संभव था, तो यह कई कारणों से एक भयानक विचार है - विभिन्न विश्लेषणों को देखें जो कई फायदे दिखाते हैंविकेन्द्रीकृत प्रणाली) ,ERDDAPयह दुनिया के साथ काम करता है। प्रत्येक डेटा सेंटर जो डेटा का उत्पादन करता है, उसे बनाए रखने, ठीक करने और अपने डेटा की सेवा करने के लिए जारी रख सकता है। (जैसा कि उन्हें होना चाहिए) अभी तक,ERDDAP™, डेटा भी तुरंत एक केंद्रीकृत से उपलब्ध हो सकता हैERDDAPडेटा को केंद्रीकृत करने की आवश्यकता के बिनाERDDAP™या डेटा की डुप्लिकेट प्रतियां संग्रहीत करना। वास्तव में, एक निश्चित डेटासेट एक साथ उपलब्ध हो सकता है सेERDDAP™उस संगठन में जो डेटा उत्पन्न और वास्तव में स्टोर करता है (उदाहरण के लिए, GoMOOS) , सेERDDAP™मूल संगठन में (उदाहरण के लिए, IOOS सेंट्रल) , सभी सेNOAA ERDDAP™, सभी अमेरिकी संघीय सरकार सेERDDAP™, वैश्विकERDDAP™ (GOOS) , और विशेष सेERDDAPs (उदाहरण के लिए, एकERDDAP™एचएबी अनुसंधान के लिए समर्पित एक संस्थान में) , सभी अनिवार्य रूप से तत्काल और कुशलतापूर्वक क्योंकि केवल मेटाडाटा को बीच में स्थानांतरित किया जाता हैERDDAPS, डेटा नहीं। सबसे अच्छा, प्रारंभिक के बादERDDAP™मूल संगठन में, अन्य सभीERDDAPजल्दी से सेट किया जा सकता है (कुछ घंटों का काम) न्यूनतम संसाधनों के साथ (एक सर्वर जिसे डेटा स्टोरेज के लिए किसी भी RAID की आवश्यकता नहीं है क्योंकि यह स्थानीय रूप से कोई डेटा स्टोर नहीं करता है) इस प्रकार, वास्तव में न्यूनतम लागत पर। तुलना करें कि डेटा झील के साथ एक केंद्रीकृत डेटा केंद्र स्थापित करने और बनाए रखने की लागत और वास्तव में एक विशाल, वास्तव में महंगा, इंटरनेट कनेक्शन की आवश्यकता, साथ ही केंद्रीकृत डेटा केंद्र की उपस्थितित्मक समस्या भी असफलता का एक बिंदु है। मेरे लिएERDDAPs विकेन्द्रीकृत, federated दृष्टिकोण अब तक बेहतर है।
उन स्थितियों में जहां किसी दिए गए डेटा सेंटर को एकाधिक की आवश्यकता होती हैERDDAPउच्च मांग को पूरा करने के लिए,ERDDAP's डिजाइन पूरी तरह से मिलान करने या एकाधिक-identical- के प्रदर्शन से अधिक करने में सक्षम हैERDDAPS-with-a-load-संतुलन दृष्टिकोण। आपके पास हमेशा सेटिंग का विकल्प होता हैएकाधिक समग्रERDDAPs (नीचे चर्चा) उनमें से प्रत्येक दूसरे से अपने सभी डेटा प्राप्त करता हैERDDAPभार संतुलन के बिना एस। इस मामले में, मैं अनुशंसा करता हूं कि आप प्रत्येक समग्र को देने का एक बिंदु बनाते हैंERDDAPएक अलग नाम / पहचान है और यदि संभव हो तो उन्हें दुनिया के विभिन्न हिस्सों में सेट करना (उदाहरण के लिए, विभिन्न AWS क्षेत्रों) , उदाहरण के लिए,ERD\_US \_East,ERD\_US \_West,ERDआईईERD\_FR,ERD\_IT, ताकि उपयोगकर्ता लगातार, बार-बार, एक विशिष्ट के साथ काम करेंERDDAPइसके अतिरिक्त लाभ के साथ आप असफलता के एक बिंदु से जोखिम को हटा दिया है।
ग्रिड, क्लस्टर और फेडरेशन
बहुत भारी उपयोग के तहत, एक एकल स्टैंडअलोनERDDAP™एक या अधिक में चला जाएगाबाधाऊपर सूचीबद्ध और यहां तक कि सुझाए गए समाधान अपर्याप्त होंगे। ऐसी स्थितियों के लिए,ERDDAP™विशेषताएं हैं जो स्केलेबल ग्रिड का निर्माण करना आसान बनाते हैं (इसे क्लस्टर या federations भी कहा जाता है) ofERDDAPजो सिस्टम को बहुत भारी उपयोग को संभालने की अनुमति देता है (उदाहरण के लिए, एक बड़े डेटा सेंटर के लिए) ।
मैं उपयोग कर रहा हूँग्रिडसामान्य शब्द के रूप में एक प्रकार का संकेत देने के लिएकंप्यूटर क्लस्टरजहां सभी भाग शारीरिक रूप से एक सुविधा में स्थित हो सकते हैं या नहीं हो सकते हैं और केंद्रीय रूप से प्रशासित नहीं हो सकते हैं। सहकारी, केंद्रीय स्वामित्व और प्रशासित ग्रिड का लाभ (क्लस्टर) यह है कि वे पैमाने की अर्थव्यवस्थाओं से लाभान्वित होते हैं (विशेष रूप से मानव कार्यभार) और सिस्टम के कुछ हिस्सों को अच्छी तरह से एक साथ काम करने के लिए सरल। गैर-co-located ग्रिड, गैर-केंद्रीय स्वामित्व और प्रशासित का लाभ (federation) यह है कि वे मानव कार्यभार और लागत को वितरित करते हैं और कुछ अतिरिक्त दोष सहिष्णुता प्रदान कर सकते हैं। समाधान मैं सभी ग्रिड, क्लस्टर और फेडरेशन topographies के लिए अच्छी तरह से काम करता है।
स्केलेबल सिस्टम को डिजाइन करने का मूल विचार संभावित बाधाओं की पहचान करना है और फिर सिस्टम को डिजाइन करना है ताकि सिस्टम के कुछ हिस्सों को बोतलबंदी को कम करने के लिए आवश्यकतानुसार दोहराया जा सके। आदर्श रूप से, प्रत्येक दोहरा हुआ हिस्सा सिस्टम के उस हिस्से की क्षमता को रैखिक रूप से बढ़ाता है (स्केलिंग की दक्षता) । यह प्रणाली स्केलेबल नहीं है जब तक कि प्रत्येक बाधा के लिए स्केलेबल समाधान नहीं होता है।स्केलेबिलिटीदक्षता से अलग है (कैसे जल्दी से एक कार्य किया जा सकता है - भागों की दक्षता) । स्केलेबिलिटी सिस्टम को किसी भी स्तर की मांग को संभालने की अनुमति देती है। दक्षता (स्केलिंग और भागों के हिस्से) यह निर्धारित करता है कि कितने सर्वर आदि को मांग के स्तर को पूरा करने की आवश्यकता होगी। दक्षता बहुत महत्वपूर्ण है, लेकिन हमेशा सीमा होती है। स्केलेबिलिटी एक सिस्टम बनाने का एकमात्र व्यावहारिक समाधान है जो संभाल सकता है बहुत भारी उपयोग। आदर्श रूप से, सिस्टम स्केलेबल और कुशल होगा।
गोल
इस डिजाइन के लक्ष्य हैं:
- एक स्केलेबल आर्किटेक्चर बनाने के लिए (किसी भी हिस्से को दोहराकर आसानी से एक्स्टेंसिबल हो सकता है जो ओवर-बर्ड हो जाता है) । एक कुशल प्रणाली बनाने के लिए जो उपलब्ध कंप्यूटिंग संसाधनों को दिए गए डेटा की उपलब्धता को अधिकतम करता है। (लागत लगभग हमेशा एक मुद्दा है।)
- सिस्टम के कुछ हिस्सों की क्षमताओं को संतुलित करने के लिए ताकि सिस्टम का एक हिस्सा दूसरे भाग को अभिभूत न हो।
- एक सरल वास्तुकला बनाने के लिए ताकि सिस्टम को स्थापित करना और प्रशासित करना आसान हो।
- एक वास्तुकला बनाने के लिए जो सभी ग्रिड टोपोग्राफी के साथ अच्छी तरह से काम करता है।
- एक ऐसी प्रणाली बनाने के लिए जो सुंदर ढंग से विफल हो जाती है और एक सीमित तरीके से यदि कोई हिस्सा अति-बर्ड हो जाता है। (एक बड़े डेटासेट की प्रतिलिपि बनाने के लिए आवश्यक समय हमेशा एक विशिष्ट डेटासेट की मांग में अचानक वृद्धि से निपटने की प् रणाली की क्षमता को सीमित करेगा।)
- (यदि संभव हो) एक ऐसी वास्तुकला बनाने के लिए जो किसी विशिष्ट विशिष्ट से जुड़ा नहीं हैक्लाउड कंप्यूटिंगसेवा या अन्य बाह्य सेवाएं (क्योंकि उन्हें इसकी आवश्यकता नहीं है) ।
सिफारिश
हमारी सिफारिशें हैं
- मूल रूप से, मैं सुझाव देता हूँ कि एक समग्र स्थापनाERDDAP™ ( D आरेख में) , जो एक नियमित हैERDDAP™सिवाय इसके कि यह सिर्फ दूसरे से डेटा प्रदान करता हैERDDAPS. ग्रिड की वास्तुकला को जितना संभव हो उतना काम करने के लिए डिज़ाइन किया गया है (CPU उपयोग, मेमोरी उपयोग, बैंडविड्थ उपयोग) समग्र सेERDDAP™अन्यERDDAPS.
- ERDDAP™दो विशेष डेटासेट प्रकार हैं,EDDGridसेंध