内存
在本文档中,您可以学习如何调试与内存相关的问题。
我的进程耗尽内存
Node.js (JavaScript) 是一种具有垃圾回收机制的语言,因此可能由于保留器而导致内存泄漏。由于 Node.js 应用程序通常是多租户的、对业务至关重要的以及长时间运行的,因此提供一种可访问且高效的方式来查找内存泄漏至关重要。
症状
用户观察到内存使用量持续增加(可能很快或很慢,持续数天甚至数周),然后看到进程崩溃并由进程管理器重新启动。进程的运行速度可能比以前慢,并且重新启动会导致某些请求失败(负载均衡器响应 502)。
副作用
- 由于内存耗尽导致进程重新启动,并且请求被丢弃
- GC 活动增加导致 CPU 使用率更高,响应时间更慢
- GC 阻塞事件循环导致速度变慢
- 增加内存交换会降低进程速度(GC 活动)
- 可能没有足够的可用内存来获取堆快照
我的进程内存利用效率低下
症状
应用程序使用了超出预期的内存量和/或我们观察到垃圾回收器活动增加。
副作用
- 页面错误数量增加
- GC 活动和 CPU 使用率更高