博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node之cpu监控
阅读量:5154 次
发布时间:2019-06-13

本文共 826 字,大约阅读时间需要 2 分钟。

node是单线程的,运行 cpu密集型运算不是node的强项,当项目出现问题时对cpu的监控是重要的一环,防止某些运算,太耗费cpu性能,从而影响真个系统的性能。网上介绍的方法很多,这里说两种方法。

1.基于node提供的工具。

--prof命令,例如运行node --prof app.js,并且当前目录下多了一个 isolate-xxx-v8.log 文件,然后执行,node --prof-process --preprocess isolate-0x103000000-v8.log > v8.json,当前文件夹下会多出一个v8.json文件,然后使用v8的工具,当然先下载v8,git clone https://github.com/v8/v8.git,找到v8/tools/profview/index.html,选择v8.json结果如图:

通过这,可以查找到影响cpu性能的函数,然后做优化就可以了。不过这种方法有个问题。只能在开发环境用,因为生成的v8.log日志是和node的主线程相关的,主线程占有该日志的文件描述符,你必须停掉node进程才能操作该日志,所以测试环境和生产上是不能采用这种方法的。

2.构建cpu监控工具

也许你会问,网上有好多工具,为什么要自己构建一个呢,不是浪费时间吗?注意同学这涉及到安全问题,网上的代码可信任程度,你不能确定他是否有后门,再说了这个东西并不难。下面简要说一下原理,到了测试环境和生产环境,我们基本要做到实时监控,又不能影响node的性能,所以应该单独起一个线程,监听系统cpu和内存的使用情况,每秒监听一次就够了。然后该进程同时也是一个node服务,通过socket将数据传递到前台,前端通过echart做数据展现,很方便的,我大概写了一个监控本机cpu和内存使用情况,如图:

 

转载于:https://www.cnblogs.com/node-jili/p/10214311.html

你可能感兴趣的文章
Happy Great BG-卡精度
查看>>
Xamarin Visual Studio不识别JDK路径
查看>>
菜鸟“抄程序”之道
查看>>
Ubuntu下关闭防火墙
查看>>
TCP/IP 邮件的原理
查看>>
w3m常用快捷键
查看>>
【Unity 3D】学习笔记四十一:关节
查看>>
原型设计工具
查看>>
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>
【Java】使用Eclipse进行远程调试,Linux下开启远程调试
查看>>
js对象属性方法
查看>>
对Vue为什么不支持IE8的解释之一
查看>>
Maven安装配置
查看>>
ORA-10635: Invalid segment or tablespace type
查看>>
计算机改名导致数据库链接的诡异问题
查看>>
Windows 8 操作系统 购买过程
查看>>
软件工程课程-个人编程作业
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
查看>>
ObjectiveC基础教程(第2版)
查看>>