非五毛非官方体验Alinode报告

很久没更新了,记一篇流水账,说说我使用alinode的那些事儿。

Alinode简介

alinode,是一套基于社区 Node 改进的运行时环境和服务平台。在社区的基础上我们内建了强大的支持功能,帮助开发者迅速洞见性能细节,快速定位疑难杂症,直探问题根源。

官网网址:http://alinode.aliyun.com/

安装

alinode提供了两种部署方式:
1.自助式部署 。
2.交互性部署。

本人选择的是交互性部署。过程当中只需要执行两条命令

wget -q https://raw.githubusercontent.com/aliyun-node/alinode-all-in-one/master/alinode_all.sh

bash -i alinode_all.sh // 可能需要sudo权限

安装过程当中,有两点让我感到比较意外,1. 竟然会问我是否使用阿里云的服务器(如果不是阿里云的服务器,不知道是否会容易遇到问题?) 2. 发现分配给我的app id 才800多,感觉目前使用的人还不多。

回头看看自助式部署的文档。

主要介绍了如何安装 tnvm, AgentX,根据命名方法,推测tnvm功能作用约等于nvm,负责alinode的版本更新。

回头把重点放在 AgentX 模块,通过npm查找到对应模块的一些介绍。

AgentX是alinode团队开发的agent命令程序,用于协助alinode的性能数据上报和问题诊断。

项目地址:https://github.com/aliyun-node/agentx

大概浏览了一下代码,agentx 大概的作用是,启动了一个websocket服务器,服务器会带着app id 和 key 等信息到监控服务器上面注册,注册成功后,收集alinode产生的日志文件汇报到监控服务器并且暴露一些执行命令的接口,交给监控服务器来推送执行。

监控

nohup agentx ~/yourconfig.json & // 启动AgentX
export ENABLE_NODE_LOG=YES // 当您需要 alinode 的内核级监控时,请于启动进程前,添加如下两个环境变量
export NODE_LOG_DIR=/tmp/
node app.js //启动你的node.js 应用。
显示成功连接实例
alinode进程数据

alinode进程监控

堆整体信息

堆整体信息是描述V8堆的大致信息的。heap_limit是堆内存的上限大小。heap_total是当前堆申请到的大小。heap_used是当前实际使用到的大小。其大小关系为heap_limit > heap_total > heap_used。

堆空间信息

V8中,堆被开辟为多个空间,每个空间有自己的GC回收算法。其中new_space是新生代,code_space存放编译后的代码,lo_space存放大对象。除了new_space外,其余空间均属于老生代。

GC信息

GC信息是当前一分钟内的GC占比图。last_min指过去的1分钟。gc_time_during_last_min是指在这一分钟内用在GC上的时间占比。scavange_durition是指作用在新生代上的GC占比,marksweep_durition是指作用在老生代上的GC占比

趋势图1

很遗憾,qps趋势并没有说明是如何定义的?

趋势图2

timer趋势比较有意思,定时器是在node.js经常使用的,同时也是产生性能问题的,监听个数有确实有利于发现系统问题。

Node profile

记得在深jsconf中,朴灵曾经为此进行分析,开发者能通过Node profile 能够轻松地看到项目代码在执行的过程中,代码片段所花费的时间和优化情况。有一点可惜的是该项目不是开源的。

项目地址: http://profiler.alinode.aliyun.com/

alinode中提供了方便的接口查看node profile

在进程界面中,选择alinode 的进程,并选择 take cpu profile

约3分钟后,将会生成node profile 文件,上传该文件可以得到分析报告

node profile

总结

经过短暂的alnode使用,初步的印象alinode是一个 常规监控 + node 特色监控的监控服务,其中对node.js在运行当中的细节描述(例如gc,内存占用,libuv handles)尤为出色。

待改进地方:

  1. 界面设计方面还需要努力,尤其图表,相对其他监控服务来说,还是比较粗糙,估计alinode团队当前,把精力放在基础建设上面吧?相信要做,肯定能做好的。
  2. 当我们启动的时候带上 ENABLE_NODE_LOG=YES 才能拥有内核级的监控,既然alinode是这样设计,估计在做log的过程中对内核有一定消耗,如果不能启动内核监控,相对于其他监控服务,alinode优势不大,如果能变成不重启就能实现或者优化做log的时候性能没有受到太大影响,应该才是最好的方式。
  3. 对于v8堆,栈,gc情况,均详细显示在统计图表当中,然而,很多开发者对于v8堆,栈,gc等性能指标相对于平均负载,cpu负载,内存占用等常规监控项目而言,并不是那么熟悉,例如,当我的libuv handles 占用很高,我该如何调试?一般产生问题的原因有哪些?估计alinode团队也意识到这个问题,开设了团队博客进行科普,文章质量感觉不错。
    地址:http://alinode.aliyun.com/blog

最后,希望alinode越办越好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容