Table of Contents

0. 前言

知其然,知其所以然。作为后端程序,如果对所用的工具没有一定程度的了解,还真不敢放到线上进行运行。否则出了问题,如何解决都没谱,到时候可是线上事故。

本文主要在于以下几个方面,不局限于狭义的profileprofiler

  • Node 的性能Metrics:到底哪些进程指标是我们需要关心需要监控的
  • Node 的Profiler:如何对进程进行profile,获取核心metrics
  • Node 的GC:Memory以及GC相关的知识点,以及如何进行profile和观察,当然也需要关注memory leak及如何查找问题

版本信息

本文行文依据的Node版本,及所有范例的运行环境为:

Node version:
v8.4.0
Node v8 version:
6.0.286.52

本文撰写时候最新的LTS版本为:

v8.9.4

Node的Changelog可以在这里找到

一般只要版本差异不要太大,信息的可靠性都应该没有问题。但如果版本差异过大,请自行进行信息修正,毕竟Node的发展实在是太快。

1. 内存 Memory

1.1 V8内存机制

1.2 V8 GC详解

1.3 Node内存监控实践

2. 事件循环 EventLoop

2.1 EventLoop Lag

3. CPU

3.1 CPU Usage

4. Profile

4.1 Profile实践

EOF