aliyun-node/tnvm

alinode 怎么部署在 线上 windows 服务器上?

Closed this issue · 7 comments

alinode 怎么部署在 线上 windows 服务器上?

整体暂时不支持 windows 系统,目前 alinode 只支持 64 位 linux/mac

整体暂时不支持 windows 系统,目前 alinode 只支持 64 位 linux/mac
那要监听 云服务器 ECS(windows os)的node性能怎么搞,现在 node出现了内存溢出的异常

alinode windows 服务器没办法接入,但是你可以在代码中使用 v8-profiler-node8 或者 heapdump 自己在代码中埋点,以出现内存泄漏时获取堆快照;

然后将获取到的堆快照上传到 Node.js 性能平台进行分析,都是兼容的

代码中埋点
不理解 ,要在什么‘点’,进行

var snapshot1 = profiler.takeSnapshot();
 
// Export snapshot to file file
snapshot1.export(function(error, result) {
  fs.writeFileSync('snapshot1.json', result);
  snapshot1.delete();
});

你的应用出现异常的时候,另外,如果能切换到linux服务器,还是切到linux吧,很多工具还是linux上比较丰富。

你的应用出现异常的时候,另外,如果能切换到linux服务器,还是切到linux吧,很多工具还是linux上比较丰富。

我的应用是在出现 这个 异常是 崩溃了,怎么去捕捉到这个异常呢,我判断是内存溢出!

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node::Abort() [/root/.nvm/versions/node/v6.10.2/bin/node]
 2: 0x109b7ac [/root/.nvm/versions/node/v6.10.2/bin/node]
 3: v8::Utils::ReportApiFailure(char const*, char const*) [/root/.nvm/versions/node/v6.10.2/bin/node]
 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/root/.nvm/versions/node/v6.10.2/bin/node]
 5: v8::internal::Factory::NewFixedArray(int, v8::internal::PretenureFlag) [/root/.nvm/versions/node/v6.10.2/bin/node]
 6: v8::internal::HashTable<v8::internal::NameDictionary, v8::internal::NameDictionaryShape, v8::internal::Handle<v8::internal::Name> >::New(v8::internal::Isolate*, int, v8::internal::MinimumCapacity, v8::internal::PretenureFlag) [/root/.nvm/versions/node/v6.10.2/bin/node]
 7: v8::internal::Dictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape, v8::internal::Handle<v8::internal::Name> >::EnsureCapacity(v8::internal::Handle<v8::internal::NameDictionary>, int, v8::internal::Handle<v8::internal::Name>) [/root/.nvm/versions/node/v6.10.2/bin/node]
 8: v8::internal::Dictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape, v8::internal::Handle<v8::internal::Name> >::Add(v8::internal::Handle<v8::internal::NameDictionary>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyDetails) [/root/.nvm/versions/node/v6.10.2/bin/node]
 9: v8::internal::JSObject::AddSlowProperty(v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyAttributes) [/root/.nvm/versions/node/v6.10.2/bin/node]
10: v8::internal::Object::AddDataProperty(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyAttributes, v8::internal::Object::ShouldThrow, v8::internal::Object::StoreFromKeyed) [/root/.nvm/versions/node/v6.10.2/bin/node]
11: v8::internal::Object::SetProperty(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>, v8::internal::LanguageMode, v8::internal::Object::StoreFromKeyed) [/root/.nvm/versions/node/v6.10.2/bin/node]
12: v8::internal::Runtime::SetObjectProperty(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::LanguageMode) [/root/.nvm/versions/node/v6.10.2/bin/node]
13: v8::internal::Runtime_SetProperty(int, v8::internal::Object**, v8::internal::Isolate*) [/root/.nvm/versions/node/v6.10.2/bin/node]
14: 0x10a780092a7

自己定期检查堆大小,搜一下吧,类似的信息非常多。