基于阿里的Node全栈之路(八)Nodejs性能监控和优化

好长一段时间没更新博客了,之前答应了朴灵大大,用了阿里Node性能平台 要写下体验报告的,但因为创业,一直时间不定。然后今年又是事业几何上升期。
现在总算是闲下来,好好写下我用阿里Node性能平台之后,给我带来的收益。然后给新人介绍下阿里Node的基本使用。

本文主要针对阿里Node性能平台eggjs的结合使用。发现个人开发者想用阿里Node性能平台来管理自己现有的平台,在网上还是很难找到相关文章的。

阿里Node性能平台简介

在介绍怎么使用前,先介绍下阿里Node,阿里Node在目前来说,对于大项目和一些长期运营的平台来说,还是蛮有意义的。其实阿里Node给我的感觉,更像是阿里自身使用eggjs之类的框架后,面对大规模集群,专门修改了底层的node,然后专门用来管理集群Node,现在专门开放出来给大家使用。

那么我们为什么要用阿里Node性能平台呢?

简单的说

  1. 监控
  2. 查bug(如:内存溢出)

如何使用eggjs+阿里Node

eggjs本身也算是阿里系的,所以对阿里Node的支持就不用说了,而且阿里Node本身也是从自用剥离出来的。

相关资料

eggjs
阿里Node性能平台
egg-alinode
egg-alinode使用介绍

eggjs如何使用阿里node

eggjs结合阿里node其实很简单
只要npm install egg-alinode,注册alinode插件,然后在config里面添加你的alinode专属的server、appid、secret就可以了。
image
image

如何拿到alinode的server、appid、secret

进入到阿里Node性能平台,创建应用,然后拿到相关key。
image

填完这些就算完了嘛?

不对不对!刚刚说过,alinode是修改过底层框架。那么,这个node其实原则上讲不是原生的Node,所以我们需要去下载对应的alinode版本,然后才能完整的使用阿里Node性能平台的全部功能。
本地安装阿里Node的方法,在阿里云上有相关介绍了,这里不细讲。

第一篇文章提过使用docker来运行Node,现在我们要修改底层环境,那么只需要修改对应镜像就好了,因为node8.6以上,在对https的处理上有bug,所以特地找上朴灵大大,搞了个node8.5版本对应的alinode。

FROM registry.cn-hangzhou.aliyuncs.com/aliyun-node/alinode:3.4.0#和原来对比只修改了这行
#old: FROM node:8.5
MAINTAINER Mumudeveloper
#hardcode
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN yarn global add forever

# Create www directory
RUN mkdir -p /www
COPY ./api /www

# Install www dependencies
WORKDIR /www
RUN yarn install

EXPOSE 7001
# Define default command.  
ENTRYPOINT forever start  -l forever.log -a index.js && tail -f ~/.forever/forever.log

至此,提交了代码更新了docker后,你就可以在Node性能平台上看到对应的应用了。

有了监控后,我们能做什么?

上面说了,监控和查bug,监控这块就不谈了,比较泛。关键是bug(如:内存泄漏,这块真的是拯救了我),那个时候,我的项目刚起步,项目会定期的去各大资源网获取信息,然后突然有一段时间,我的内存不停的泄露,不停的重启,这个直接影响到很多的用户。
image
这个时候,就可以祭出阿里Node平台大杀器
在阿里Node性能平台进入到对应内存泄漏的实例
image
保存堆快照
image
进行转存和分析,然后你就能把你的程序运行的内存快照保存起来,想想保存了整个内存快照,要找出bug还不容易嘛?像我最开始,完全不懂性能平台怎么用,单是在上面乱点,就找到了熟悉的字眼(附图马赛克,ip地址)
image
然后,在好几个地方都能开到这个字眼,然后发现到处都是,^.^还用说,内存泄漏的地方肯定就被定位出来了,原来是请求对应的服务器报错,然后error被catch住后并没被销毁,导致占用了内存。

深入使用的,就得等我更有时间的时候来写了Orz

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值