उत्पादन में एलिटिक्स खोज - सर्वश्रेष्ठ आचरण की तैनाती

एलिटिक्स खोज आधुनिक डेटा एनालिटिक्स के लिए अत्यधिक अनुकूलित खोज इंजन है।

एलीटेसर्च एक अद्भुत वास्तविक समय खोज और एनालिटिक्स इंजन है। इसे Apache Lucene पर बनाया गया है। यह वितरित किया जाता है, RESTful, उपयोग शुरू करने के लिए आसान और अत्यधिक उपलब्ध। इलास्टिक्स खोज मामलों में खोज, लेन-देन की निगरानी और त्रुटि का पता लगाने, सामग्री खोज, लॉग एनालिटिक्स, फ़ज़ी सर्च, ईवेंट डेटा एकत्रीकरण, डेटा विज़ुअलाइज़ेशन शामिल हैं। इलास्टिक्सर्च और बाकी इलास्टिक स्टैक बेहद बहुमुखी साबित हुए हैं, और जैसा कि आप उपरोक्त उपयोग के मामलों को देख सकते हैं, आपके उत्पाद को आज डिलीवर करने और उसमें अतिरिक्त अंतर्दृष्टि जोड़ने के लिए कई तरीके हैं।

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

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

स्मृति:

Elasticsearch और Lucene जावा में लिखे गए हैं, जिसका मतलब है कि आपको हेपस्पेस और JVM आँकड़े देखना चाहिए। Elasticsearch के लिए जितना अधिक ढेर उपलब्ध होगा, उतनी ही अधिक स्मृति यह फिल्टर और अन्य कैशिंग के लिए क्वेरी प्रदर्शन को बढ़ाने के लिए उपयोग कर सकती है। लेकिन ध्यान दें कि बहुत अधिक ढेर आपको लंबे कचरे के संग्रह को रोक सकता है। जेवीएम संपीड़ित ऑब्जेक्ट पॉइंटर्स (संपीड़ित ऊप्स) के लिए कटऑफ के ऊपर एक्सएमएक्स सेट नहीं करता है; सटीक कटऑफ अलग-अलग है लेकिन 32 जीबी के पास है।

एक आम समस्या ढेर को कॉन्फ़िगर कर रही है जो बहुत बड़ी है। आपके पास 64 जीबी की मशीन है - और पूरी तरह से, आप सभी 64 जीबी मेमोरी के लिए एलेस्टिक्स खोज देना चाहते हैं। और अधिक बेहतर है! ढेर निश्चित रूप से एलेस्टिक्स खोज के लिए महत्वपूर्ण है। इसका उपयोग कई इन-मेमोरी डेटा संरचनाओं द्वारा तेजी से संचालन प्रदान करने के लिए किया जाता है। लेकिन इसके साथ ही कहा गया, मेमोरी का एक अन्य प्रमुख उपयोगकर्ता है जो ऑफ हीप: ओएस फ़ाइल कैश है।

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

निर्यात ES_HEAP_SIZE = 10 ग्रा

या

ES_JAVA_OPTS = "- Xms10g -Xmx10g" ।/bin/elasticsearch

सी पी यू:

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

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

थ्रेड पूल प्रकार:

इलास्टिसर्च में 3 प्रकार के थ्रेड पूल होते हैं।

  1. कैश्ड: कैश्ड थ्रेड पूल एक अनबाउंड थ्रेड पूल है जो लंबित अनुरोध होने पर एक थ्रेड को थूक देगा। इस थ्रेड पूल का उपयोग इस पूल में सबमिट किए गए अनुरोधों को अवरुद्ध या अस्वीकार करने से रोकने के लिए किया जाता है। इस थ्रेड पूल में अप्रयुक्त धागे को जीवित रखने की अवधि समाप्त होने के बाद (पांच मिनट के लिए चूक) समाप्त कर दिया जाएगा। कैश्ड थ्रेड पूल जेनेरिक थ्रेड पूल के लिए आरक्षित है।
  2. फिक्स्ड: फिक्स्ड थ्रेड पूल लंबित अनुरोधों के लिए एक कतार (वैकल्पिक रूप से बाध्य) के साथ अनुरोधों को संभालने के लिए थ्रेड्स का एक निश्चित आकार रखता है, जिनके पास उन्हें सेवा करने के लिए कोई थ्रेड नहीं है। आकार पैरामीटर थ्रेड्स की संख्या को नियंत्रित करता है, और कोर की संख्या 5 को डिफॉल्ट करता है।
  3. स्केलिंग: स्केलिंग थ्रेड पूल धागे की एक गतिशील संख्या रखती है। यह संख्या कार्यभार के आनुपातिक है और आकार पैरामीटर के 1 और मूल्य के बीच भिन्न होती है।

एलियस्टिक्स खोज सीपीयू के उपयोग को विभिन्न प्रकारों के थ्रेड पूल में विभाजित करती है:

  • सामान्य: खोज और थ्रेड पूल प्रकार जैसे मानक संचालन के लिए कैश किया गया है।
  • इंडेक्स: इंडेक्स / डिलीट ऑपरेशंस के लिए। थ्रेड पूल प्रकार तय किया गया है।
  • खोज: गिनती / खोज कार्यों के लिए। थ्रेड पूल प्रकार तय किया गया है।
  • प्राप्त करें: संचालन प्राप्त करने के लिए। थ्रेड पूल प्रकार तय किया गया है।
  • बल्क: बल्क इंडेक्सिंग जैसे बल्क इंडेक्सिंग के लिए। थ्रेड पूल प्रकार तय किया गया है। थोक दस्तावेज़ों का सबसे अच्छा कॉन्फ़िगरेशन क्लस्टर कॉन्फ़िगरेशन पर निर्भर करता है, इसे कई मान आज़माकर पहचाना जा सकता है।
  • percolate: परकोलेशन के लिए। थ्रेड पूल प्रकार तय किया गया है।
  • ताज़ा: ताज़ा संचालन के लिए। थ्रेड पूल प्रकार स्केलिंग है।

एक विशिष्ट थ्रेड पूल को बदलना इसके प्रकार-विशिष्ट मापदंडों को सेट करके किया जा सकता है।

और पढ़ें https://www.elastic.co/guide/en/elasticsearch/reference/2.2/modules-threadpool.html#types

शार्क का आकार:

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

इलास्टिक्स खोज में, प्रत्येक क्वेरी को प्रति शार्द में एक एकल थ्रेड में निष्पादित किया जाता है। हालाँकि, कई शार्क को समानांतर में संसाधित किया जा सकता है, क्योंकि एक ही शार्क के खिलाफ कई प्रश्न और एकत्रीकरण हो सकते हैं।

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

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

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

प्रतिकृति

इलास्टिसर्च प्रतिकृति का समर्थन करता है, डेटा को डेटा नोड्स के बीच दोहराया जाता है ताकि नोड हानि के कारण डेटा हानि न हो। डिफ़ॉल्ट प्रतिकृति कारक 1 है, लेकिन आपके उत्पाद की आवश्यकताओं के आधार पर इसे बढ़ाया जा सकता है। अधिक प्रतिकृतियां, अधिक आपदा प्रतिरोधी आपका डेटा होगा। अधिक प्रतिकृतियां होने का एक और लाभ यह है कि प्रत्येक नोड में एक प्रतिकृति शार्प होता है, जो क्वेरी प्रदर्शन को बेहतर बनाता है क्योंकि प्रतिकृतियां भी क्वेरी के लिए उपयोग की जाती हैं।

संगति के लिए एलियटसर्च द्वारा प्रयुक्त प्रतिकृति सूत्र है,

(प्राइमरी + नंबर_ऑफ_रोप्लिकास) / २ + १

आवंटन का अनुकूलन

उत्पाद डेटा आवश्यकताओं के आधार पर, हम डेटा को गर्म और ठंडे में वर्गीकृत कर सकते हैं। वे संकेत जो दूसरों की तुलना में अधिक बार एक्सेस किए जाते हैं, उन्हें अधिक डेटा नोड आवंटित किए जा सकते हैं, जबकि कम बार एक्सेस किए गए सूचकांकों को कम संसाधन आवंटित किए जा सकते हैं। यह रणनीति विशेष रूप से एप्लिकेशन लॉग (जैसे: ELK) की तरह समय श्रृंखला डेटा संग्रहीत करने के लिए उपयोगी है।

यह एक क्रोनजोब चलाकर प्राप्त किया जा सकता है जो नियमित अंतराल पर सूचकांकों को विभिन्न नोड्स में ले जाता है।

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

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

गर्म और गर्म नोड पर अधिक जानकारी के लिए यहां देखें।

एक और रणनीति जिसे आप अनुकूलित कर सकते हैं, वह सूचकांकों को s3 पर संग्रहीत करना और उन सूचकांकों से डेटा की आवश्यकता होने पर पुनर्स्थापित करना है। आप इसके बारे में और अधिक यहाँ से पढ़ सकते हैं।

नोड टोपोलॉजी:

इलास्टिसर्च नोड्स को तीन श्रेणियों मास्टर नोड, डेटा नोड, क्लाइंट नोड में विभाजित किया जा सकता है।

  1. मास्टर नोड: मास्टर नोड छोटा हो सकता है यदि यह डेटा नोड भी नहीं है क्योंकि यह किसी भी सूचकांक / शार्क को संग्रहीत नहीं करता है। इसकी जिम्मेदारी विस्तृत क्लस्टर स्थिति को संग्रहीत करना और डेटा / अन्य नोड्स को सूचकांकों / शार्प मेटा-डेटा लुकअप में मदद करना है। स्प्लिट ब्रेन प्रॉब्लम से बचने के लिए इलास्टिक्स में कई मास्टर नोड्स होने चाहिए।
  2. डेटा नोड: वास्तविक नोड डेटा को संग्रहीत / क्वेरी करने के लिए डेटा नोड जिम्मेदार है।
  3. क्लाइंट नोड: क्लाइंट नोड इंडेक्सिंग और खोज के लिए एक प्रॉक्सी के रूप में उपयोग किया जाता है। यदि अत्यधिक एकत्रीकरण का उपयोग किया जाता है तो यह अत्यधिक अनुशंसित है। ये विशेष ElasticSearch नोड्स हैं जो न तो डेटा या मास्टर योग्य हैं। क्लाइंट नोड्स क्लस्टर से अवगत हैं और इसलिए स्मार्ट लोड बैलेंसर्स के रूप में कार्य कर सकते हैं। आप अपने प्रश्नों को क्लाइंट नोड्स को भेज सकते हैं जो तब डेटा नोड्स में से प्रत्येक से क्वेरी परिणामों के लिए प्रतिक्रियाओं को इकट्ठा करने के महंगे कार्य पर ले जा सकते हैं।

संबंधित नोड्स के लिए इन सेटिंग्स को elasticsearch.yml फ़ाइल में जोड़ें।

मास्टर नोड: नोड.मास्टर: true node.data:false
डेटा नोड: नोड.मास्टर: मिथ्या नोड.data:true
क्लाइंट नोड: नोड.मास्टर: मिथ्या नोड

समस्या निवारण युक्तियों:

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

  1. हीप प्रेशर: उच्च मेमोरी प्रेशर दो तरह से क्लस्टर प्रदर्शन के खिलाफ काम करता है: जैसे-जैसे मेमोरी प्रेशर 75% और ऊपर जाता है, कम मेमोरी उपलब्ध रहती है, और आपके क्लस्टर को अब कचरा संग्रह के माध्यम से मेमोरी को पुनः प्राप्त करने के लिए कुछ CPU संसाधनों को खर्च करने की भी आवश्यकता है। ये CPU चक्र उपयोगकर्ता के अनुरोधों को संभालने के लिए उपलब्ध नहीं हैं जबकि कचरा संग्रहण चालू है। परिणामस्वरूप, उपयोगकर्ता अनुरोधों के लिए प्रतिक्रिया समय बढ़ जाता है क्योंकि सिस्टम अधिक से अधिक संसाधन विवश हो जाता है। यदि मेमोरी प्रेशर बढ़ता रहता है और 100% के करीब पहुंच जाता है, तो कचरा संग्रह का बहुत अधिक आक्रामक रूप उपयोग किया जाता है, जो नाटकीय रूप से क्लस्टर प्रतिक्रिया समय को प्रभावित करेगा। इंडेक्स रिस्पांस टाइम्स मीट्रिक दिखाता है कि उच्च मेमोरी दबाव एक महत्वपूर्ण प्रदर्शन प्रभाव की ओर जाता है।
  2. JVM की नॉन-हीप मेमोरी में ग्रोथ, पेज कैश के लिए मेमोरी को दूर करने और संभवतः कर्नेल-लेवल OOM- रीपिंग का कारण बनता है।
  3. स्प्लिट ब्रेन प्रॉब्लम से बचें। स्प्लिट ब्रेन एक ऐसा परिदृश्य है जहां क्लस्टर विभाजित होता है। उदाहरण के लिए, आपके पास 6 नोड क्लस्टर हैं। 2 नोड क्लस्टर से डिस्कनेक्ट होते हैं, लेकिन वे अभी भी एक दूसरे को देखने में सक्षम हैं। ये 2 नोड्स फिर एक और क्लस्टर बनाते हैं। वे आपस में एक नए गुरु का चुनाव भी करेंगे। अब हमारे पास एक ही नाम के दो क्लस्टर हैं, जिनमें से 4 नोड्स के साथ और 2 नोड्स के साथ हैं। प्रत्येक में एक मास्टर नोड भी है। इसे ES-क्लस्टर के साथ स्प्लिट-ब्रेन इश्यू कहा जाता है। इससे बचने के लिए, ES पैरामीटर की खोज करें ।zen.minimum_master_nodes को नोड्स + 1 की आधी संख्या पर सेट करें।
  4. चूंकि एलियस्टिक्स खोज भंडारण उपकरणों का भारी उपयोग करती है, इसलिए डिस्क I / O की निगरानी यह सुनिश्चित करती है कि यह बुनियादी जरूरत पूरी हो जाए। कम डिस्क I / O के कई कारण हैं, इसके कई प्रकार के मुद्दों की भविष्यवाणी करने के लिए एक महत्वपूर्ण मीट्रिक माना जाता है। इंडेक्सिंग और क्वेरी प्रदर्शन की प्रभावशीलता की जांच करने के लिए यह एक अच्छा मीट्रिक है। पढ़ने और लिखने के संचालन का विश्लेषण सीधे इंगित करता है कि सिस्टम को विशिष्ट उपयोग के मामले में सबसे ज्यादा क्या चाहिए। डिस्क I / O के लिए ऑपरेटिंग सिस्टम सेटिंग्स अन्य सभी अनुकूलन के लिए एक आधार हैं, ट्यूनिंग डिस्क I / O संभावित समस्याओं से बच सकते हैं। यदि डिस्क I / O अभी भी पर्याप्त नहीं है, तो काउंटरमेशर्स जैसे कि शार्क की संख्या और उनके आकार का अनुकूलन, थ्रॉटलिंग मर्ज, धीमी डिस्क की जगह, SSDs पर जाना, या अधिक नोड्स जोड़ना परिस्थितियों के अनुसार I / O का मूल्यांकन किया जाना चाहिए। बाधाओं।
  5. खोज पर भरोसा करने वाले अनुप्रयोगों के लिए, उपयोगकर्ता अनुभव खोज अनुरोधों की विलंबता के लिए अत्यधिक सहसंबद्ध है। कई चीजें हैं जो क्वेरी के प्रदर्शन को प्रभावित कर सकती हैं, जैसे कि निर्मित प्रश्न, अनुचित तरीके से कॉन्फ़िगर किया गया एलिटिक्स खोज क्लस्टर, जेवीएम मेमोरी और कचरा संग्रह के मुद्दे, डिस्क आईओ, और इसी तरह। क्वेरी विलंबता वह मीट्रिक है जो उपयोगकर्ताओं को सीधे प्रभावित करती है, इसलिए सुनिश्चित करें कि आपने इस पर कुछ अलर्ट लगाए हैं।
  6. Elasticsearch के अधिकांश फ़िल्टर डिफ़ॉल्ट रूप से कैश किए जाते हैं। इसका मतलब है कि फ़िल्टर्ड क्वेरी के पहले निष्पादन के दौरान, एलेस्टिक्सखोज में फ़िल्टर से मेल खाते दस्तावेज़ मिलेंगे और उस जानकारी का उपयोग करके "बिटसेट" नामक एक संरचना का निर्माण होगा। बिटसेट में संग्रहीत डेटा में एक दस्तावेज़ पहचानकर्ता होता है और क्या कोई दस्तावेज़ फ़िल्टर से मेल खाता है। एक ही फिल्टर वाले प्रश्नों के बाद के निष्पादन बिटसेट में संग्रहीत जानकारी का पुन: उपयोग करेंगे, इस प्रकार I / O संचालन और सीपीयू चक्रों की बचत करके क्वेरी निष्पादन को तेजी से बनाते हैं। क्वेरी में फ़िल्टर का उपयोग करने की अनुशंसा की जाती है। अधिक जानकारी के लिए यहां देखें।
  7. ताज़ा समय और मर्ज का समय अनुक्रमण प्रदर्शन से निकटता से संबंधित है, साथ ही वे समग्र क्लस्टर प्रदर्शन को प्रभावित करते हैं। Lucene index (शार्क) के लिए फ़ाइल संचालन की संख्या के साथ ताज़ा समय बढ़ता है।
  8. धीमी क्वेरी लॉगिंग को सक्षम करने से यह पहचानने में मदद मिलेगी कि कौन से प्रश्न धीमे हैं और उन्हें सुधारने के लिए क्या किया जा सकता है, विशेष रूप से वाइल्डकार्ड प्रश्नों के लिए उपयोगी।
  9. अधिकतम फ़ाइलों की अनुमति देने के लिए ulimit आकार बढ़ाएँ।
  10. जब ओएस अप्रयुक्त एप्लिकेशन मेमोरी को स्वैप करने का फैसला करता है, तो इलास्टिक खोज प्रदर्शन पीड़ित हो सकता है। OS स्तर सेटिंग सेट करके स्वैपिंग अक्षम करें या ElasticSearch कॉन्फिगर बूटस्ट्रैप.mlockall में निम्नलिखित सेट करें: सत्य
  11. वाइल्डकार्ड क्वेरी द्वारा सभी सूचकांकों को हटाने में अक्षम करें। यह सुनिश्चित करने के लिए कि सभी इंडेक्स (* या _all) सेट पर कोई DELETE ऑपरेशन जारी नहीं करता है। कार्रवाई के लिए ।.dructructive_requires_name सही करने के लिए।

समाप्त करने से पहले, यहां उन यूआरएल की सूची दी गई है जो मीट्रिक देखने के लिए उपयोगी हैं।

  • / _क्लस्टर / स्वास्थ्य? सुंदर: क्लस्टर स्वास्थ्य संकेतक के लिए।
  • / _status? pretty: सभी सूचकांकों के बारे में पूरी जानकारी के लिए।
  • / _nodes? सुंदर: नोड्स के बारे में सभी जानकारी के लिए।
  • / _कैट / मास्टर? सुंदर: मास्टर नोड के लिए।
  • / _stats? सुंदर: तीव्र आवंटन के लिए, सूचकांक आँकड़े।
  • / _nodes / आँकड़े? सुंदर: व्यक्तिगत नोड आँकड़ों के लिए, इसमें nv, jvm, http, io आँकड़े शामिल हैं।

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

निष्कर्ष:

एलीस्टेसर्च एक वितरित पूर्ण-पाठ खोज और विश्लेषिकी इंजन है, जो कई किरायेदारों को उनके संपूर्ण डेटा सेटों के माध्यम से खोज करने में सक्षम बनाता है, चाहे वे अभूतपूर्व गति से हों। अपनी पूर्ण-पाठ खोज क्षमताओं के अलावा, इलास्टिकसर्च एक एनालिटिक्स सिस्टम और वितरित डेटाबेस के रूप में दोगुना हो जाता है। ElasticSearch शुरू करने के लिए बहुत बड़ी चूक है। लेकिन एक बार शुरुआती प्रयोग अवस्था में आपको अपनी आवश्यकताओं के लिए सेटिंग्स को ट्विक करने के लिए कुछ समय बिताना होगा। यह अनुशंसा की जाती है कि आप अपने कॉन्फ़िगरेशन को बाद में आधिकारिक दस्तावेज के साथ फिर से सुनिश्चित करें, यह सुनिश्चित करने के लिए कि आपकी क्लस्टर आपकी आवश्यकताओं को पूरा करने के लिए कॉन्फ़िगर की गई है।