2013-02-19 99 views
9

मैं पता लगाने के लिए क्या 'maxmemory' के लिए एक सुरक्षित सेटिंग निम्न स्थिति में होगा कोशिश कर रहा हूँ:का चयन redis maxmemory आकार और BGSAVE स्मृति उपयोग

  • लिखने भारी आवेदन
  • 8GB राम
  • मान लेते हैं अन्य प्रक्रियाओं 1GB के बारे में ऊपर ले जाने
  • इसका मतलब है कि redis प्रक्रिया 'स्मृति उपयोग 7GB
  • स्मृति उपयोग हर BGSAVE घटना पर युगल को कभी आगे नहीं हो सकता है, क्योंकि:

redis docs में निम्नलिखित स्मृति उपयोग BGSAVE घटनाओं पर बढ़ाने के बारे में कहा गया है:

आप एक बहुत लिखने-भारी आवेदन में Redis उपयोग कर रहे हैं, जबकि डिस्क या पुनर्लेखन पर एक RDB फ़ाइल को सहेजने हैं एओएफ लॉग रेडिस सामान्य रूप से उपयोग की जाने वाली स्मृति के 2 गुना तक उपयोग कर सकता है।

  • maxmemory सीमा लगभग redis-CLI जानकारी से 'used_memory' की तुलना में है (विस्तार से बताया है के रूप में here) और खाते

में redis द्वारा प्रयोग किया जाता अन्य स्मृति नहीं ले करता हूँ मैं जिसे ठीक इसका मतलब है कि इस स्थिति में अधिकतम स्मृति सेटिंग (8 जीबी - 1 जीबी)/2 = 3.5 जीबी से अधिक नहीं होनी चाहिए?

यदि ऐसा है, तो मैं इसे और अधिक स्पष्ट रूप से प्रतिबिंबित करने के लिए रेडिस दस्तावेज़ों के लिए एक पुल अनुरोध तैयार करूंगा।

उत्तर

3

मैं इस मामले में 3 जीबी की सीमा की सिफारिश करता हूं। हां, दस्तावेज़ काफी सही हैं और एक bgsave चलाना स्मृति आवश्यकताओं को अल्प अवधि के लिए दोगुना कर देगा। हालांकि, मैं सिस्टम के लिए 2 जीबी मेमोरी आरक्षित करना चाहता हूं, या अधिकतम मास्टर के अधिकतम अधिकतम 40% के लिए अधिकतम आरक्षित करना पसंद करता हूं।

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

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^