200 тыс. данных (1,3 ГБ) в коллекции mongo и ошибка возврата запроса в NodeJS

#node.js #reactjs #mongodb

Вопрос:

Я новичок в NodeJS и Mongo DB. У меня есть коллекция с 0,2 миллионами данных (1,3 ГБ) в коллекции mongo.

Я использую локальный сервер и машину с окном.

Я использую NodeJS и REACTJ для выполнения запроса с этой коллекцией. У меня есть ключевое слово для поиска только в 2 столбцах, и я получил следующую ошибку:

Пожалуйста, предложите, как решить эту проблему.

 <--- Last few GCs --->

[33332:000001D061D9E0A0]    42563 ms: Mark-sweep (reduce) 2039.7 (2060.1) -> 2039.5 (2061.1) MB, 304.6 / 0.0 ms  (average mu = 0.065, current mu = 0.013) allocation failure scavenge might not succeed
[33332:000001D061D9E0A0]    42881 ms: Mark-sweep (reduce) 2040.5 (2058.1) -> 2040.4 (2059.8) MB, 313.2 / 0.0 ms  (average mu = 0.040, current mu = 0.015) allocation failure scavenge might not succeed


<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 00007FF6CFDC481F napi_wrap 110783
 2: 00007FF6CFD67F26 v8::base::CPU::has_sse 61862
 3: 00007FF6CFD68E26 node::OnFatalError 294
 4: 00007FF6D06423BE v8::Isolate::ReportExternalAllocationLimitReached 94
 5: 00007FF6D062718D v8::SharedArrayBuffer::Externalize 781
 6: 00007FF6D04D02CC v8::internal::Heap::EphemeronKeyWriteBarrierFromCode 1516
 7: 00007FF6D04DB6EA v8::internal::Heap::ProtectUnprotectedMemoryChunks 1258
 8: 00007FF6D04D8829 v8::internal::Heap::PageFlagsAreConsistent 2457
 9: 00007FF6D04CD3D1 v8::internal::Heap::CollectGarbage 2049
10: 00007FF6D04CB5D5 v8::internal::Heap::AllocateExternalBackingStore 1349
11: 00007FF6D04E5455 v8::internal::GCIdleTimeHandler::ShouldDoContextDisposalMarkCompact 1029
12: 00007FF6D04E58A5 v8::internal::Factory::AllocateRaw 37
13: 00007FF6D04F93E6 v8::internal::FactoryBase<v8::internal::Factory>::NewFixedArrayWithFiller 86
14: 00007FF6D04F96F3 v8::internal::FactoryBase<v8::internal::Factory>::NewFixedArrayWithMap 35
15: 00007FF6D0306AE0 v8::internal::HashTable<v8::internal::NameDictionary,v8::internal::NameDictionaryShape>::EnsureCapacity<v8::internal::Isolate> 208
16: 00007FF6D0304156 v8::internal::Dictionary<v8::internal::NameDictionary,v8::internal::NameDictionaryShape>::Add<v8::internal::Isolate> 102
17: 00007FF6D030D416 v8::internal::BaseNameDictionary<v8::internal::NameDictionary,v8::internal::NameDictionaryShape>::Add 118
18: 00007FF6D020178C v8::internal::Runtime::GetObjectProperty 2204
19: 00007FF6D06CB27D v8::internal::SetupIsolateDelegate::SetupHeap 465325
20: 000001E7C8B837B6
 

Комментарии:

1. Увеличьте объем памяти на вашей машиневиртуальной машинесервере.

2. Я использую локальную машину. Моя машина-это Окно. Так что же будет дальше?

3. Можете ли вы показать соответствующие коды?

4. Увеличьте объем памяти, выделенной узлу.

5. У меня есть одно решение…. узел —максимальный размер старого пространства=8192 index.js но это не работает

Ответ №1:

Опция v8 «—максимальный размер старого пространства» должна вам помочь. https://nodejs.org/api/cli.html#cli_max_old_space_size_size_in_megabytes