2015-12-18 16 views
7

Sunucuda 2GB (Yaklaşık) veriyi mongodb'den redis'e dışa aktarma, ardından FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory olarak hata alma.nodejs varsayılan belleğini nasıl artırırım?

Daha sonra bu komutu node --max-old-space-size=4076 server.js numaralı sunucuyla başlattı ve düzgün çalışıyor. Ancak, nodejs uygulamasında yapılandırmak gerekir, böylece düğüm sunucusu her zaman 4GB bellekle başlar. Lütfen bunu nasıl düzelteceğime yardım et? Teşekkürler.

+0

8192, bir npm başlangıç ​​komut dosyası bu koyarak durduruluyor şey mi var? –

+0

Merhaba James, nodejs için yeni biriyim. lütfen bunu saklamak için tam olarak neye ihtiyacım olduğunu söyler misiniz? örnek kod sağlayabilir misiniz? sana çok minnettarım. – anil

+0

Bir yorumda verebileceğimden daha fazla ayrıntıya bir cevap gönderdim. Umarım size yardımcı olur. –

cevap

0

düğümün SomeScript.js --max-old-uzay-size = sadece meraktan

+0

@M T Head: Teşekkürler – anil

12

bir seçenek: npm başlatmak komut

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

Bu

sonra
{ 
    //other package.json stuff 

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

} 

içeri yazmak yerine npm start çağrı çalıştırmak için "komut" bölümü altında package.json eklenir düğüm + yayınlar + yürütme noktası.

Not: bunu baştan dışında bir isim ise, npm run [yourScriptNameHere] komut Bu varsayılan olarak 4gb kullanmak düğümü yeniden yapılandırmak için çalışırken daha iyi bir seçenektir bunu

çalıştırmak olacaktır (bile bilmiyorum onun mümkün tbh). Konfigürasyonunuzu taşınabilir hale getirerek, kullandığı metotları olduğu gibi kullanır ve gelecekte kodunuzla karşılaşan diğer kişilerin buna ihtiyaç duyduğunu anlamasına olanak tanır.

+0

Tüm projeler için kalıcı olarak değiştirmenin bir yolu var mı? –

+0

@InzamamMalik bilmiyorum - ya da hızlı bir google arama bulabilirsiniz. Bunun tasarımla da olduğuna inanıyorum. Orijinal gönderi, bir uç noktadan diğerine akış verilerinin çözülmüş olabileceği ve hepsini belleğe almayan bir kullanım durumuna sahipti. Muhtemelen, düğüm (veya gerçekten, v8) bellek sınırlarını her zaman geçersiz kılmanız gerekiyorsa, muhtemelen uygulamanızla ilgili bir mimari sorun var demektir. Her işlem için hala ihtiyacınız olduğunu düşünüyorsanız, başlangıç ​​betiği gerçekten rahatsız edici görünmüyor. –