2015-12-18 8 views
7

सर्वर स्टार्टअप पर 2 जीबी (लगभग) डेटा को मोंगोडब से रेडिस तक निर्यात करने पर, फिर FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory के रूप में त्रुटि प्राप्त हो रही है।नोडजेस डिफ़ॉल्ट मेमोरी को कैसे बढ़ाया जाए?

फिर इस आदेश node --max-old-space-size=4076 server.js के साथ सर्वर शुरू किया और ठीक काम करता है। लेकिन nodejs applicaton में कॉन्फ़िगर करने की आवश्यकता है ताकि नोड सर्वर हमेशा 4 जीबी मेमोरी के साथ शुरू हो। कृपया इसे ठीक करने में मेरी सहायता करें? धन्यवाद।

+0

बस जिज्ञासा से बाहर, वहाँ कुछ है कि आप एक NPM शुरू लिपि में इस डाल से रोक रहा है है? –

+0

हाय जेम्स, मैं नोडजेस के लिए नौसिखिया हूँ। क्या आप कृपया मुझे बता सकते हैं कि मुझे इसे रखने की ज़रूरत है? क्या आप नमूना कोड प्रदान कर सकते हैं? मैं आपके लिए बहुत आभारी हूं। – anil

+0

मैंने एक टिप्पणी में प्रदान किए गए कुछ विवरणों के साथ एक उत्तर पोस्ट किया था। उम्मीद है कि यह आपको मदद करता है। –

उत्तर

0

नोड SomeScript.js --max की उम्र में अंतरिक्ष आकार = 8192

+0

@ एम टी हेड: धन्यवाद – anil

12

एक ही विकल्प: NPM शुरू लिपियों

https://docs.npmjs.com/misc/scripts

ये "स्क्रिप्ट" खंड के तहत अपने package.json से जुड़ जाते हैं

{ 
    //other package.json stuff 

    "scripts":{ 
    "start": "node --max-old-space-size=4076 server.js" 
    } 

} 
तो

यह npm start बजाय फोन में टाइप के चलाने के लिए नोड + args + निष्पादन बिंदु।

नोट: यदि आप इसे शुरू के अलावा कुछ नाम, npm run [yourScriptNameHere] आदेश यह

चलाने के लिए यह डिफ़ॉल्ट रूप से 4 जीबी का उपयोग करने के नोड को पुन: कॉन्फ़िगर करने की कोशिश कर की तुलना में एक बेहतर विकल्प है हो जाएगा (भले ही पता नहीं है इसके संभव टीबीएच)। यह आपके कॉन्फ़िगरेशन को बेक्ड इन विधियों का उपयोग करके पोर्टेबल बनाता है क्योंकि यह खड़ा होता है और भविष्य में आपके कोड का सामना करने वाले अन्य लोगों को यह समझने की अनुमति देता है कि यह एक आवश्यकता है।

+0

क्या सभी परियोजनाओं के लिए इसे स्थायी रूप से बदलने का कोई तरीका है? –

+0

@ इंजमाममालिक जो मुझे पता नहीं है - या एक त्वरित Google खोज पर मिल सकता है। मेरा मानना ​​है कि यह डिजाइन द्वारा भी है। मूल पोस्ट में एक उपयोग केस था जिसे स्ट्रीमिंग डेटा को एक एंडपॉइंट से दूसरी तरफ हल किया जा सकता था और इसे स्मृति में सभी को बफर नहीं किया जा सकता था। संभावना है कि यदि आपको हर समय नोड (या वास्तव में, v8) मेमोरी सीमाओं को ओवरराइड करने की आवश्यकता है, तो शायद आपके कार्यान्वयन के साथ एक वास्तुशिल्प समस्या है। यदि आपको अभी भी लगता है कि आपको हर प्रक्रिया के लिए इसकी आवश्यकता है, तो स्टार्ट स्क्रिप्ट वास्तव में असुविधाजनक प्रतीत नहीं होती है। –

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