乐趣区

关于node.js:每日灵魂一问Node性能如何进行监控以及优化

一. Node 性能指标:

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

CPU 负载
CPU 使用率

2. 内存

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

// rss 示意 node 过程占用的内存总量
// heapTotal:示意堆内存的总量。// eapUsed:理论堆内存的使用量。// external:内部程序的内存使用量,蕴含 Node 外围的 C ++ 程序的内存使用量



// /app/lib/memory.js
const 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

退出移动版