SSD कैश स्टोर के साथ स्क्विड या अन्य HTTP कैश?


9

मैं SSD ड्राइव के साथ एक सिस्टम पर स्क्वीड (या संभवतः वार्निश) कैश स्थापित करने पर विचार कर रहा हूं।

स्पष्ट लाभ यह है कि इन प्रणालियों में महान गति होती है और मुझे उम्मीद है कि मेरे हिट अनुपात काफी अधिक होंगे।

मान लेते हैं कि मैं एक RAID विन्यास में 7 SSDs रख सकता हूं। (कुछ मामले हैं जो मुझे बहुत अधिक में पैक करने देंगे)

कार्यान्वयन प्रश्न:

  • क्या मुझे RAID0 का उपयोग करना चाहिए? (मैं एक ड्राइव अंततः असफल होने की उम्मीद करता हूं, इसलिए यह खतरनाक लगता है।)

  • क्या मुझे RAID10 का उपयोग करना चाहिए? (यह मेरी डिस्क फुटप्रिंट को बढ़ाता है, जो महंगा है।)

  • क्या मुझे RAID5 का उपयोग करना चाहिए? (SSDs को "खराब" लिखने के प्रदर्शन के लिए जाना जाता है और सीमाएं लिखते हैं, और सभी अतिरिक्त समता लिखते हैं, यह काफी धीमा हो सकता है।)

  • क्या मुझे सिर्फ प्रत्येक डिस्क का इलाज करना चाहिए क्योंकि यह स्वयं स्क्वीड डेटास्टोर है? (कितनी अच्छी तरह से व्यंग्य कई डेटा स्टोर संभालता है? और क्या होता है / जब कोई विफल होता है?)

  • क्या मुझे डेटास्टोर्स को नजरअंदाज करना चाहिए और बस एसएसडी को बड़े स्वैप विभाजन के लिए बनाना चाहिए और लिनक्स वीएम को यह करने देना चाहिए? (मैला लगता है)

उत्पादन वातावरण में SSDs का उपयोग करने वाले लोगों से किसी भी सलाह की बहुत सराहना की जाएगी। (अगर आप उन्हें HTTP कैश के लिए उपयोग कर रहे हैं)


+1 दिलचस्प सवाल के लिए, मैंने कभी भी ड्राइव को केवल एक बड़े स्वैप विभाजन में बनाने पर विचार नहीं किया
बॉब

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

अफसोस की बात यह है कि कैश फुटप्रिंट की जरूरत मुझे रैम में नहीं होगी। मेरे पास उन वस्तुओं के लिए पहले से ही रैम-समर्थित स्क्वीड कैश हैं।
जोएल के

जवाबों:


8

हम पिछले 9 महीनों से ssd ड्राइव पर वार्निश का उपयोग कर रहे हैं, इसने हमारे लिए बहुत अच्छा काम किया है। हमने पहले स्क्वीप मेमोरी का उपयोग केवल कार्प परत के साथ किया था। यह काम किया, लेकिन स्मृति विखंडन एक वास्तविक समस्या थी जो लगातार पुनरारंभ की आवश्यकता थी। स्क्विड 2.x भी केवल एक कोर का उपयोग करेगा जो इसे वर्तमान हार्डवेयर पर अक्षम बनाता है।

हमारी साइट के लिए, जो बहुत कैश फ्रेंडली है, हम 8 कोर मशीन पर लगभग 10% सीपीयू उपयोग करते हैं जो 100Mbit / s ट्रैफिक की सेवा करता है। हमारे परीक्षणों में हम 2 1Gb बंदरगाहों के साथ सीपीयू की सीमा को हिट करने से पहले बैंडविड्थ से बाहर निकलते हैं।

मेरे पास ssd कैश के साथ वार्निश चलाने के लिए कुछ सलाह है।

  • यादृच्छिक लेखन प्रदर्शन वास्तव में मायने रखता है। हमने इंटेल x-25m पर बसने से पहले ssd ड्राइव के लिए कई वेंडर की कोशिश की। हमने कुछ पोस्ट को 4k रैंडम राइट्स के लिए .1MB / s जैसे ही देखा है, हमें 24MB / s 4k रैंडम राइट्स x-25m के साथ मिलते हैं।

  • RAID0। 2.0 में कैश निरंतर नहीं है, इसलिए अतिरेक के बारे में चिंता करने की आवश्यकता नहीं है। यह पुनरारंभ को चोट पहुंचाता है, लेकिन वे दुर्लभ हैं। आप नए कॉन्फिगरेशन को लोड कर सकते हैं और बिना रिस्टार्ट किए ऑब्जेक्ट्स को पर्ज कर सकते हैं।

  • एमएमएपी मोड। वार्निश कैश किसी फ़ाइल में mmap'd हो सकता है या स्वैप स्थान का उपयोग कर सकता है। स्वैप का उपयोग करना हमारे लिए अच्छी तरह से काम नहीं करता है, यह ट्रैफ़िक की समान मात्रा की सेवा करने के लिए अधिक i / o बैंडविड्थ का उपयोग करता है। Linux swapin कोड में 4 सेक्टर रीडहेड है, हमने इसे हटाने के लिए एक पैच लिखा था लेकिन उत्पादन में इसे आज़माया नहीं है।

  • डेडलाइन शेड्यूलर। 2.6.28+ के साथ यह ssd जागरूक है और अच्छा प्रदर्शन करता है। हमने बिना सोचे-समझे कोशिश की लेकिन पाया गया कि i / o बैंडविड्थ सीमित होने के साथ ही समय सीमा उचित थी।

  • आगे पढ़ें अक्षम करें। चूंकि कोई घूर्णी विलंब नहीं है, इसलिए अतिरिक्त डेटा पढ़ने का कोई मतलब नहीं है क्योंकि आपको इसकी आवश्यकता हो सकती है। i / o बैंडविड्थ इन चीजों पर कीमती है।

  • 2.6.28+ चलाएं। लाइनक्स पर बहुत अधिक स्थान का mmap मेमोरी मैनेजर को एक अच्छा वर्कआउट देता है, लेकिन विभाजित lru पैच बहुत मदद करते हैं। जब हमने अपडेट किया तो kswapd cpu का उपयोग बहुत कम हो गया।

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


1

मैं एसएसडी को HTTP कैश के रूप में उपयोग नहीं कर रहा हूं, लेकिन मैं इन टिप्पणियों को बना सकता हूं:

सभी एसएसडी समान नहीं हैं, इसलिए आपको सभ्य लोगों को चुनने के बारे में बहुत सावधान रहना होगा। फ्यूजनियो पीसीआई-समर्थित एसएसडी बनाते हैं जो वास्तव में उच्च-अंत कलाकार हैं (अपेक्षाकृत कम क्षमता के साथ), लेकिन महंगा। इंटेल के X25-E SLC SSDs वास्तव में अच्छा प्रदर्शन करते हैं, और अधिक सस्ती, लेकिन अभी भी कम क्षमता वाले हैं। क्या तुम खोज करते हो! मैं निश्चित रूप से एक्स 25-ई एसएलसी वेरिएंट की सिफारिश कर सकता हूं, क्योंकि मैं उत्पादन प्रणालियों में इनका उपयोग कर रहा हूं।

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

और, ज़ाहिर है, एसएसडी छोटे हैं। इंटेल X25-E, जो मैं कहूंगा कि मैंने देखा सबसे अच्छा SATA SSD है, केवल 32 और 64 जीबी वेरिएंट में आता है।

RAID स्तरों के लिए, मानक RAID प्रदर्शन नोट अभी भी लागू होते हैं। RAID 5 के लिए एक लेखन में डेटा ब्लॉक को पढ़ना शामिल है जिसमें आप संशोधित करने जा रहे हैं, समता ब्लॉक को पढ़ रहे हैं, समता को अपडेट कर रहे हैं, डेटा ब्लॉक लिख रहे हैं और समता लिख ​​रहे हैं, इसलिए यह अभी भी अन्य RAID की तुलना में खराब प्रदर्शन देने वाला है। स्तर, यहां तक ​​कि एसएसडी के साथ भी। हालाँकि, X25-E जैसे ड्राइव्स में इस तरह के उच्च यादृच्छिक IO प्रदर्शन होते हैं, यह शायद कम मायने रखता है - क्योंकि यह अभी भी समान आकार के सरणी के लिए कताई डिस्क पर यादृच्छिक IO को बेहतर बनाने वाला है।

मैंने जो देखा है, उसमें से RAID नियंत्रक बैंडविड्थ 7 डिस्क RAID सेट से सबसे अधिक लाभ प्राप्त करने के लिए बहुत जल्द संतृप्त होता है, कम से कम जहां तक ​​अनुक्रमिक प्रदर्शन का संबंध है। आप SATA नियंत्रकों (3ware, areca आदि) के वर्तमान मॉडल से लगभग 800MB / s से अधिक नहीं प्राप्त कर सकते हैं। कई नियंत्रकों (जैसे, एक RAID10 के बजाय कई RAID1s) में अधिक छोटे सरणियों के बाद, इसमें सुधार होगा, हालांकि प्रत्येक सरणी के व्यक्तिगत प्रदर्शन को नुकसान होगा।

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


यहां तक ​​कि X25-M प्रयोग करने योग्य हैं
प्योरोलॉजिकल

मैंने अपना होमवर्क किया है और JMicrons से बचना जानता हूं। मैं ज्यादातर एक्स 25-एमएस (इंटेल एमएलसी) और संभवतः नए (गैर जेमिकॉन) ओसीजेड वर्टेक्स श्रृंखला पर विचार कर रहा था।
जोएल के

वाह, ओज़्ज़ वर्टेक्स में x25-m से भी कम अधिकतम यादृच्छिक लेखन है !!!
पाइरोलॉजिकल

1

मैं एसएसडी ड्राइव से बहुत परिचित नहीं हूं, लेकिन मैं उस तरह के आर्किटेक्चर के बारे में बात कर सकता हूं जो मैंने इस्तेमाल किया है जो आपकी कुछ समस्याओं को हल करने में मदद कर सकता है।

एक माँ की संताने

मेरे मामले में मैंने चार सर्वर 16GB RAM के साथ बनाए। मैं स्क्वीड को उपयोग करने के लिए स्मृति कैश में 9GB सेट करता हूं। मैंने उन्हें भाई-बहनों के एक समूह के रूप में कॉन्फ़िगर किया है ताकि डेटा की तलाश करने से पहले एक सर्वर को एक क्वेरी दूसरों को क्वेरी कर सके। कुल मिलाकर मेरे पास 36GB मेमोरी कैश थी। मैं चार भाई-बहनों से नहीं मिलता, क्योंकि उनके बीच का संवाद टूटने लगता है।

वीआईपी

मैंने क्लाइंट के लिए चार सर्वरों से बात करने के लिए एक वीआईपी को कॉन्फ़िगर किया। यह हल तब होता है जब एक सर्वर नीचे जाता है।

बच्चे

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

खुद को स्क्वीड करें

मैंने वास्तव में 3.0 को नहीं देखा है, लेकिन 2.x अभी भी सिंगल थ्रेडेड है। कुछ बिंदु पर आप CPU या TCP बफ़र्स से बाहर निकलने वाले हैं। यदि संभव हो तो मैं 2-3 कम बक्से में कैश फैलाऊंगा। यदि आप सिस्टम को बढ़ते हुए देखते हैं तो आप भविष्य में अपने स्क्वीड फार्मों के विभाजन की योजना बनाना चाहते हैं।

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


0

आप छापे 10 या 5 पर भी विचार क्यों कर रहे हैं। आप यहां प्रदर्शन चाहते हैं। आप परवाह नहीं है अगर ड्राइव सिर्फ नीचे जाना है, क्योंकि यह केवल कैश है।

बस छापे 0 का उपयोग करें या उन्हें अलग रखें। मुझे लगता है कि अलग होना बेहतर होगा, क्योंकि ड्राइव की विफलता आपके पूरे कैश को कम नहीं करेगी।


यदि एकल डेटा स्टोर समाप्त हो जाता है, तो स्क्वीड कितना ठीक हो जाता है? (स्पष्ट रूप से मुझे यह जांचने की आवश्यकता है) अगर एक डेटस्टोर के विफल होने के बारे में स्क्वीड सुंदर नहीं है, तो RAID5 एक समझौता है।
जोएल के

-1

स्क्वीड प्रलेखन रेक का उपयोग नहीं करने की सलाह देता है लेकिन अतिरिक्त डिस्क पर अतिरिक्त कैश निर्देशिकाओं को स्थापित करने के लिए।


1
कृपया स्क्वीड प्रलेखन के संबंधित अनुभाग का लिंक प्रदान करें।
एंड्रयू शुलमैन

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