每日灵魂一问-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')
【每日灵魂一问-Node性能如何进行监控以及优化()】3.文件操作 正确的使用Stream
推荐阅读
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 一个懂得和他自己灵魂沟通的人,这个人一定是正直善良的人
- #2018.4.12#每日一问#+简宁+D03+我是怎样做读书笔记的
- 每日微习惯诞生|每日微习惯诞生 16/100
- --木木--|--木木-- 第二课作业#翼丰会(每日一淘6+1实战裂变被动引流# 6+1模式)
- 那些直击灵魂深处的句子
- 03月30日|03月30日|Day92|每日复盘
- [白雪扇贝每日一句特训班]week5复盘——相信持续的力量
- 4.4每日一思之清明节
- 梦想右上方