【问题标题】:200k data (1.3 GB) in mongo collection and query return error in NodeJSmongo 收集中的 200k 数据 (1.3 GB) 和 NodeJS 中的查询返回错误
【发布时间】:2021-11-12 01:44:57
【问题描述】:

我是 NodeJS 和 Mongo DB 的新手。我在 mongo Collection 中有一个包含 20 万数据 (1.3 GB) 的集合。

我正在使用本地服务器和窗口机器。

我正在使用 NodeJS 和 ReactJS 来执行这个集合的查询。我只有 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

【问题讨论】:

  • 增加你的机器\虚拟机\服务器上的内存。
  • 我使用的是本地机器。我的机器是窗口。那么下一部分是什么?
  • 你能显示相关代码吗?
  • 增加分配给Node的内存
  • 我得到了一个解决方案.... node --max-old-space-size=8192 index.js 但这不起作用

标签: node.js reactjs mongodb


【解决方案1】:

v8 选项“--max-old-space-size”应该对您有所帮助。 https://nodejs.org/api/cli.html#cli_max_old_space_size_size_in_megabytes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    相关资源
    最近更新 更多