Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

रेडिस मेमोरी लीक कैसे निर्धारित करें?

रेडिस में "छिपी हुई" मेमोरी खपत के कुछ स्रोत यहां दिए गए हैं:

  • मार्क ने पहले ही दास को खिलाने के लिए स्वामी द्वारा बनाए गए बफ़र्स का उल्लेख किया था। यदि कोई दास अपने स्वामी से पिछड़ रहा है (क्योंकि यह उदाहरण के लिए धीमे बॉक्स पर चलता है), तो कुछ मेमोरी मास्टर की खपत हो जाएगी।

  • जब लंबे समय तक चलने वाले आदेशों का पता लगाया जाता है, तो Redis उन्हें SLOOWLOG क्षेत्र में लॉग करता है, जो कुछ मेमोरी लेता है। आपके पास यहां मौजूद रिकॉर्ड्स की संख्या की जांच करने के लिए आप SLOWLOG LEN कमांड का उपयोग करना चाह सकते हैं।

  • संचार बफ़र्स मेमोरी भी ले सकते हैं। जहां तक ​​​​मुझे याद है, रेडिस के पुराने संस्करणों के साथ (और 2.4 काफी पुराना है - आपको वास्तव में अपग्रेड करना चाहिए), यह असीमित था, जिसका अर्थ है कि यदि आप एक बिंदु पर एक बड़ी वस्तु को स्थानांतरित करते हैं, तो इस क्लाइंट कनेक्शन से जुड़े संचार बफर बढ़ेगा और कभी नहीं सिकुड़ते। यदि कई क्लाइंट कभी-कभी बड़ी वस्तुओं से निपटते हैं, तो यह एक संभावित स्पष्टीकरण हो सकता है। यदि आप रेडिस (एक शॉट में) से बहुत बड़ा डेटा प्राप्त करने वाले कमांड का उपयोग करते हैं, तो यह एक स्पष्टीकरण भी हो सकता है। उदाहरण के लिए, लाखों कुंजियों को संग्रहीत करने वाले Redis सर्वर पर लागू किया गया एक साधारण KEYS * कमांड महत्वपूर्ण मात्रा में मेमोरी की खपत करेगा।

आपने उल्लेख किया है कि आपके पास 25 एमबी जितनी बड़ी वस्तुएं हैं। आपके पास 404 क्लाइंट कनेक्शन हैं, यदि उनमें से प्रत्येक को एक समय में ऐसी वस्तुओं तक पहुँचने की आवश्यकता है, तो यह 10 जीबी मेमोरी की खपत करेगा।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस में पाइपलाइनिंग बनाम लेनदेन

  2. हरोकू सीडर स्टैक पर रेस्क्यू कार्यकर्ता के समाप्त होने के बाद भी वर्कर काउंट मौजूद है

  3. लारवेल:रेडिस कोई कनेक्शन नहीं बनाया जा सका:[tcp://127.0.0.1:6379]

  4. Node.js, Redis और Socket.io का उपयोग करके कैशिंग ट्वीट्स

  5. लिखने के पैमाने के रूप में लगातार हैशिंग