2016-06-18 7 views
6

मेरे पास एक ऐसी स्क्रिप्ट है जो समय-समय पर एक मोंगोड संग्रह पर एकत्रीकरण चलाती है। चूंकि डेटासेट बढ़ गया है, कुल मिलाकर कितना समय लगता है। मेरे एकत्रीकरण स्क्रिप्ट हाल ही में लगातार काम करना बंद कर दिया है, और त्रुटि लॉग दिखाने: error: { [MongoError: server <x> timed out] name: 'MongoError', message: 'server <x> timed out' } मैं इस डिबगिंग की कोशिश की है, और केवल पैटर्न मैं पा सकते हैं इस समय समाप्त ही होते हैं करने के लिए एकत्रीकरण से अधिक समय 2 मिनट लगते हैं जब (ऐसा लगता है कि है 2 मीटर के आसपास सही समय)। क्या इसके लिए किसी के पास अतिरिक्त डिबगिंग युक्तियाँ हैं? 2 मिनट की बात मुझे इंप्रेशन दे रही है कि मुझे बस कुछ समय-समय पर कॉन्फ़िगर करने की आवश्यकता है, लेकिन मुझे यह पता नहीं लगाया जा सकता है कि मैं कहां या अगर मैं लाल-हेरिंग जाल में गिर रहा हूं।मोंगोडीबी एकत्रीकरण के दौरान "सर्वर एक्स टाइम आउट"

सिस्टम कॉन्फ़िगरेशन के बारे में: यह एकत्रीकरण स्क्रिप्ट एक node.js (v5.9.1) अनुप्रयोग है जो अल्पाइन-आधारित डॉकर (v1.9.1) कंटेनर में चल रहा है। यह mongodb नोड ड्राइवर (v2.1.19) का उपयोग करता है। एकल mongodb सर्वर (हालांकि यह एक अलग वातावरण में एक प्रतिकृति के साथ भी हो रहा है) चल रहा है mongod (v3.2.6)

उत्तर

5

मुझे लॉग समेकन के लिए एक ही समस्या मिली। मुझे लगता है कि मेरे पास आपके लिए समाधान है।

मुझे पता चला कि socketTimeoutMS विकल्प इसके लिए ज़िम्मेदार है। अपने mongo_client.js डिफ़ॉल्ट socketTimeoutMS मान की जांच करें। मेरे लिए यह 2min था। Mongodb मॉड्यूल संस्करण 2.1.18।

तो बस अपने यूआरएल में इस विकल्प को जोड़ें:

mongodb://localhost:27017/test?maxPoolSize=2&socketTimeoutMS=60000 

यह timeout 10 मिनट सेट हो जाएगा। यह मेरे लिए चाल है।

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