केवल प्रदान किए गए डेटा के आधार पर एक स्पष्टीकरण प्रस्तावित करना मुश्किल है, लेकिन यहां मेरा अनुमान है। मुझे लगता है कि आपने पहले से ही स्पष्ट विलंबता स्रोतों (दृढ़ता से जुड़े हुए) की जांच की है, कि कोई रेडिस कमांड slow log में सीपीयू को हॉगिंग नहीं कर रहा है, और पाइथन-आरक्यू द्वारा उठाए गए नौकरी डेटा का आकार बड़ा नहीं है।
प्रलेखन के अनुसार, पायथन-आरक ने रेडिस में हैश ऑब्जेक्ट्स के रूप में नौकरियां डालीं, और नौकरियों से छुटकारा पाने के लिए रेडिस संबंधित कुंजी (500 सेकंड डिफ़ॉल्ट मान प्रतीत होता है) को समाप्त कर देता है। यदि आपके पास कुछ गंभीर थ्रूपुट है, तो एक बिंदु पर, आपके पास रेडिस में कई आइटम समाप्त होने की प्रतीक्षा कर रहे हैं। लंबित नौकरियों की तुलना में उनकी संख्या अधिक होगी।
आप INFO कमांड के परिणामस्वरूप समाप्त होने वाली वस्तुओं की संख्या को देखकर इस बिंदु को देख सकते हैं।
रेडिस समाप्ति एक आलसी तंत्र (लागू होने पर लागू होने पर लागू) पर आधारित है, और मुख्य नमूना पर आधारित एक सक्रिय तंत्र, जो घटना लूप (छद्म पृष्ठभूमि मोड में, हर 100 एमएस) में चलाया जाता है। मुद्दा यह है कि सक्रिय समाप्ति तंत्र चल रहा है, कोई Redis कमांड संसाधित नहीं किया जा सकता है।
क्लाइंट अनुप्रयोगों के प्रदर्शन को प्रभावित करने से बचने के लिए, सक्रिय तंत्र ट्रिगर होने पर प्रत्येक बार केवल सीमित संख्या में कुंजी संसाधित की जाती है (डिफ़ॉल्ट रूप से, 10 कुंजी)। हालांकि, अगर 25% से अधिक कुंजी समाप्त हो जाती हैं, तो यह अधिक कुंजी और लूप की अवधि समाप्त करने का प्रयास करती है। इस तरह की संभाव्य एल्गोरिदम स्वचालित रूप से अपनी गतिविधि को रीडिस की अवधि समाप्त होने की कुंजी पर अनुकूलित करने का तरीका है।
जब कई चाबियाँ समाप्त हो जाती हैं, तो यह अनुकूली एल्गोरिदम रेडिस के प्रदर्शन को महत्वपूर्ण रूप से प्रभावित कर सकता है। आप अधिक जानकारी here पा सकते हैं।
मेरा सुझाव पाइथन-आरक को समाप्ति की सेटिंग द्वारा रेडिस को आइटम की सफाई करने के लिए रोकने का प्रयास करना होगा। वैसे भी क्यूइंग सिस्टम के लिए यह एक खराब डिजाइन है।
स्रोत
2013-03-07 19:47:47
आपका उपयोग कैसा दिखता है? क्या वहां बहुत बड़ा 'एसओआरटी' चल रहा है? क्या आप उत्पादन कोड में 'KEYS' का उपयोग करते हैं? क्या आप कहीं से भी 'मॉनिटर' चला रहे हैं? आपकी दृढ़ता रणनीति क्या है? –
हमने इस उदाहरण में दृढ़ता को अक्षम कर दिया। वर्तमान में कहीं भी 'कुंजी' या 'मॉनिटर' आदेशों का उपयोग नहीं कर रहा है। हमारे पास कम से कम मेरे ज्ञान की सीमा तक 'एसओआरटी' नहीं है। यह उदाहरण 'rq' (www.python-rq.org) को समर्पित है। –