压力测试我的Foxx应用程序最终会使ArangoDB崩溃,并出现SIGSEGV。查看核心文件,它似乎与V8内存不足有关。我想在堆上进行内存分析,以帮助跟踪潜在的泄漏。既然V8引擎是V8不可或缺的一部分,那么如何访问和使用arangod分析器呢?提供帮助的节点模块都有C++模块,所以它们不能直接在Foxx下运行。
发布于 2016-08-02 16:00:03
不幸的是,V8引擎及其垃圾收集在内存管理方面有一些小问题。
在某些情况下,它会在紧凑的循环中运行,以便从系统中挤出更多的内存,有时它会立即终止进程,而不是给它的宿主进程一个机会来处理这种情况。
这也是所有基于V8的解决方案都必须解决的问题-- Node.JS。V8团队正在努力解决这一问题,并且每个版本都取得了进展。但是这条路现在还没有走到尽头。
至于调试接口,它很可能也会提供内存分析,我们很清楚它目前缺少and tracking progress on this via the github issue #1538。当这个主题的资源可用时,我们将开始研究它。
您现在可能可以在linux内核的帮助下以某种方式使用flamgegraphs,但是编写使其更有用所需的JIT编译函数的名称似乎有问题。
https://stackoverflow.com/questions/38669028
复制相似问题