一. Node性能指标:

1. CPU(同步会占用,异步不会)

CPU负载
CPU使用率

2. 内存

在Node中,一个过程的最大内存容量为1.5GB。因而咱们须要缩小内存泄露

// rss 示意node过程占用的内存总量// heapTotal:示意堆内存的总量。// eapUsed:理论堆内存的使用量。// external :内部程序的内存使用量,蕴含Node外围的C++程序的内存使用量// /app/lib/memory.jsconst os = require('os');// 获取以后Node内存堆栈状况const { rss, heapUsed, heapTotal } = process.memoryUsage();// 获取零碎闲暇内存const sysFree = os.freemem();// 获取零碎总内存const sysTotal = os.totalmem();module.exports = {  memory: () => {    return {      sys: 1 - sysFree / sysTotal,  // 零碎内存占用率      heap: heapUsed / headTotal,   // Node堆内存占用率      node: rss / sysTotal,         // Node占用零碎内存的比例    }  }}

3.磁盘 I/O

内存 IO比磁盘IO 快十分多,所以应用内存缓存数据是无效的优化办法。罕用的工具如 redis、memcached等

4. 网络

二.如何监控

Easy-Monitor 2.0

const easyMonitor = require('easy-monitor');easyMonitor('你的项目名称');

关上你的浏览器,拜访 http://localhost:12333 ,即可看到过程界面

三、如何优化

1.fast-json-stringify代替 json-stringify

2.bluebird替换Promise
global.Promise = require('bluebird')

3.文件操作 正确的应用Stream