简体   繁体   English

我是否只需要一个具有更多内存的EC2实例,还是此错误表明我的代码中存在问题?

[英]Do I just need an EC2 instance with more memory or does this error suggest issues in my code?

The short answer is "of course there are problems in my code," but for the time being, I'm wondering if the error messages I'm receiving can help me fix a specific problem. 简短的回答是“代码中当然有问题”,但是就目前而言,我想知道我收到的错误消息是否可以帮助我解决特定的问题。 My app is running on sails , using Node v8.1.2 running on an EC2 instance modified from this Bitnami image . 我的应用程序上运行的风帆 ,用从修改的EC2实例中运行的节点V8.1.2 这个Bitnami图像 The instance type is t2.small (2GB memory), which I should probably upgrade, in any case. 实例类型为t2.small (2GB内存),无论如何我都应该升级它。

Is this an error message I should review closely and use to find bugs? 这是我应该仔细检查并用于查找错误的错误消息吗? Or should I just switch to a larger instance and hope for the best? 还是我应该切换到更大的实例并希望获得最好的结果? Thanks in advance. 提前致谢。

bitnami@ip-172-31-17-108:~$ sudo forever stopall
^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A
<--- Last few GCs --->

[5547:0x3ec5a50]   111819 ms: Scavenge 6.7 (10.0) -> 6.3 (10.5) MB, 153.7 / 2.2 ms  allocation failure
[5547:0x3ec5a50]   130817 ms: Scavenge 7.3 (10.5) -> 6.8 (11.0) MB, 207.3 / 9.4 ms  allocation failure
[5547:0x3ec5a50]   164550 ms: Scavenge 7.8 (11.0) -> 7.3 (11.5) MB, 155.3 / 8.0 ms  allocation failure
[5547:0x3ec5a50]   203571 ms: Scavenge 8.2 (11.5) -> 7.6 (11.5) MB, 317.2 / 42.5 ms  allocation failure


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x9d40a2a9891 <JS Object>
    1: patch [/opt/bitnami/nodejs/lib/node_modules/forever/node_modules/graceful-fs/polyfills.js:64] [pc=0x426fa5d7cb1](this=0x38dbb211729 <JS Global Object>,fs=0xfd51435b869 <an Object with deprecated map 0x4376127ec19>)
    2: patch [/opt/bitnami/nodejs/lib/node_modules/forever/node_modules/graceful-fs/graceful-fs.js:58] [pc=0x426fa5d6791](this=0x38dbb211729 <JS Global Object>,fs=0xfd51435b869...

FATAL ERROR: Committing semi space failed. Allocation failed - process out of memory
 1: node::Abort() [/opt/bitnami/nodejs/bin/.node.bin]
 2: 0x13647ec [/opt/bitnami/nodejs/bin/.node.bin]
 3: v8::Utils::ReportOOMFailure(char const*, bool) [/opt/bitnami/nodejs/bin/.node.bin]
 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/opt/bitnami/nodejs/bin/.node.bin]
 5: v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/opt/bitnami/nodejs/bin/.node.bin]
 6: v8::internal::Heap::CollectGarbage(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*, v8::GCCallbackFlags) [/opt/bitnami/nodejs/bin/.node.bin]
 7: v8::internal::Factory::NewMap(v8::internal::InstanceType, int, v8::internal::ElementsKind) [/opt/bitnami/nodejs/bin/.node.bin]
 8: v8::internal::Map::RawCopy(v8::internal::Handle<v8::internal::Map>, int) [/opt/bitnami/nodejs/bin/.node.bin]
 9: v8::internal::Map::CopyDropDescriptors(v8::internal::Handle<v8::internal::Map>) [/opt/bitnami/nodejs/bin/.node.bin]
10: v8::internal::Map::AddMissingTransitions(v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::DescriptorArray>, v8::internal::Handle<v8::internal::LayoutDescriptor>) [/opt/bitnami/nodejs/bin/.node.bin]
11: v8::internal::MapUpdater::ConstructNewMap() [/opt/bitnami/nodejs/bin/.node.bin]
12: v8::internal::MapUpdater::ReconfigureToDataField(int, v8::internal::PropertyAttributes, v8::internal::PropertyConstness, v8::internal::Representation, v8::internal::Handle<v8::internal::FieldType>) [/opt/bitnami/nodejs/bin/.node.bin]
13: 0xffc3a0 [/opt/bitnami/nodejs/bin/.node.bin]
14: v8::internal::Map::PrepareForDataProperty(v8::internal::Handle<v8::internal::Map>, int, v8::internal::PropertyConstness, v8::internal::Handle<v8::internal::Object>) [/opt/bitnami/nodejs/bin/.node.bin]
15: v8::internal::LookupIterator::PrepareForDataProperty(v8::internal::Handle<v8::internal::Object>) [/opt/bitnami/nodejs/bin/.node.bin]
16: v8::internal::Object::SetDataProperty(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>) [/opt/bitnami/nodejs/bin/.node.bin]
17: v8::internal::Object::SetPropertyInternal(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>, v8::internal::LanguageMode, v8::internal::Object::StoreFromKeyed, bool*) [/opt/bitnami/nodejs/bin/.node.bin]
18: v8::internal::Object::SetProperty(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>, v8::internal::LanguageMode, v8::internal::Object::StoreFromKeyed) [/opt/bitnami/nodejs/bin/.node.bin]
19: v8::internal::StoreIC::Store(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Object>, v8::internal::Object::StoreFromKeyed) [/opt/bitnami/nodejs/bin/.node.bin]
20: v8::internal::Runtime_StoreIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*) [/opt/bitnami/nodejs/bin/.node.bin]
21: 0x426fa38437d
bitnami@ip-172-31-17-108:~$ <--- JS stacktrace --->^C
bitnami@ip-172-31-17-108:~$ cd my-sails-api/
bitnami@ip-172-31-17-108:~/my-sails-api$ sudo sails lift


<--- Last few GCs --->

[5562:0x2739a40]    79195 ms: Scavenge 5.7 (10.1) -> 5.6 (9.6) MB, 304.7 / 8.1 ms  allocation failure
[5562:0x2739a40]    98188 ms: Scavenge 6.6 (9.6) -> 5.9 (10.1) MB, 252.5 / 24.5 ms  allocation failure


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x25f39c629891 <JS Object>
    2: constructor(aka Duplex) [_stream_duplex.js:48] [pc=0x178f7677eb54](this=0x20617eab9791 <a WriteStream with map 0x1d0c9952641>,options=0x20617eab98e9 <an Object with map 0x1d0c9952329>)
    3: constructor(aka Socket) [net.js:197] [pc=0x178f7677de42](this=0x20617eab9791 <a WriteStream with map 0x1d0c9952641>,options=0x20617eab98e9 <an Object with map 0x1d0c9952329>)
    4: new constructor(...

FATAL ERROR: Committing semi space failed. Allocation failed - process out of memory
 1: node::Abort() [/opt/bitnami/nodejs/bin/.node.bin]
 2: 0x13647ec [/opt/bitnami/nodejs/bin/.node.bin]
 3: v8::Utils::ReportOOMFailure(char const*, bool) [/opt/bitnami/nodejs/bin/.node.bin]
 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/opt/bitnami/nodejs/bin/.node.bin]
 5: v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/opt/bitnami/nodejs/bin/.node.bin]
 6: v8::internal::Heap::CollectGarbage(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*, v8::GCCallbackFlags) [/opt/bitnami/nodejs/bin/.node.bin]
 7: v8::internal::Factory::NewCode(v8::internal::CodeDesc const&, unsigned int, v8::internal::Handle<v8::internal::Object>, bool, bool, int, bool) [/opt/bitnami/nodejs/bin/.node.bin]
 8: v8::internal::CodeGenerator::MakeCodeEpilogue(v8::internal::MacroAssembler*, v8::internal::EhFrameWriter*, v8::internal::CompilationInfo*, v8::internal::Handle<v8::internal::Object>) [/opt/bitnami/nodejs/bin/.node.bin]
 9: v8::internal::FullCodeGenerator::MakeCode(v8::internal::CompilationInfo*, unsigned long) [/opt/bitnami/nodejs/bin/.node.bin]
10: v8::internal::FullCodegenCompilationJob::ExecuteJobImpl() [/opt/bitnami/nodejs/bin/.node.bin]
11: v8::internal::CompilationJob::ExecuteJob() [/opt/bitnami/nodejs/bin/.node.bin]
12: 0xd97d90 [/opt/bitnami/nodejs/bin/.node.bin]
13: 0xd98b28 [/opt/bitnami/nodejs/bin/.node.bin]
14: 0xd98d8f [/opt/bitnami/nodejs/bin/.node.bin]
15: 0xd9ce59 [/opt/bitnami/nodejs/bin/.node.bin]
16: v8::internal::Compiler::Compile(v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Compiler::ClearExceptionFlag) [/opt/bitnami/nodejs/bin/.node.bin]
17: v8::internal::Runtime_CompileLazy(int, v8::internal::Object**, v8::internal::Isolate*) [/opt/bitnami/nodejs/bin/.node.bin]
18: 0x178f7658437d
bitnami@ip-172-31-17-108:~/my-sails-api$
bitnami@ip-172-31-17-108:~/my-sails-api$ sudo sails lift
-bash: fork: Cannot allocate memory
bitnami@ip-172-31-17-108:~/my-sails-api$

By default node.js will not allow you to allocate more than 1.7GB in one process so no - there's no point in upgrading unless you're sure you can't do anything in your code to consume less memory (for example use streams). 默认情况下,node.js不允许您在一个进程中分配超过1.7GB的空间,因此没有-升级没有意义,除非您确定不能在代码中做任何事情以消耗更少的内存(例如使用流) 。

If you have no other choice you can try to increase the size of allowed memory - but keep in mind that it will probably impact the speed of your program - by setting the following option: 如果没有其他选择,可以尝试通过设置以下选项来增加允许的内存大小,但要记住,这可能会影响程序的速度:

--max_old_space_size <size in mb>

Run node --v8-options for more information. 运行node --v8-options以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 当我将 SSH 插入我的 EC2 实例时,我如何确定它当前正在运行什么服务器? - When I SSH into my EC2 instance, how do I figure out what server it is currently running? 为什么ec2实例不显示我的网站? 使用nodejs - Why does ec2 instance not display my website? Using nodejs 如果服务器重新启动,是否需要在EC2上手动重新启动我的应用程序? - Do I need to manually restart my app on EC2 if the server restarts? 如何设置我的应用程序/EC2 实例,以便不必将端口号放在 IP 的末尾? - How do I set up my application/EC2 instance so that I don't have to put the port number at the end of the IP? Cloudfront 分发不适用于 EC2 实例 - Cloudfront distribution does not work with for an EC2 instance 我可以在Amazon EC2的实例上运行多个应用吗? - Can I run more than one app on an instance of Amazon EC2? AWS ec2实例上的MongoDB连接错误 - MongoDB connection error on AWS ec2 instance 为什么我在 AWS EC2 实例上的 nodejs 应用程序的大文件上传失败并显示状态 413? - Why does large file upload fail with status 413 for my nodejs app on AWS EC2 instance? 我目前在端口 3000 上运行我的 amazon ec2 实例。我想在端口 80 上运行它。 我该怎么做? - I currently run my amazon ec2 instance on port 3000. I want to run it on port 80 instead. How can I do it? 如何在一个EC2实例上运行多个应用程序 - How to run more than one app on one instance of EC2
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM