如何用 OneAPM 优化你的 Node.js 应用?
来源:互联网 发布:故事板软件苹果 编辑:程序博客网 时间:2024/06/11 07:56
本文主要讲解如何使用 OneAPM 提供的信息从内存、CPU 使用、响应速度等方面优化 Node.js 应用。适用于定位于刚刚使用 Node.js 开发后台的读者。本文系 OneAPM 用户投稿,本网站授权转发。
本文你可看到以下内容
- 为什么要使用 OneAPM
- OneAPM 优化实例
为什么要使用 OneAPM ?
- 初次开发 Node.js 应用的时候,由于缺乏对 Node.js 的全面认识以及知识的缺乏会将大量的时间用在开发功能上,所以开发的功能必将留下一些「坑」。为了填补这些「坑」,首先你得能找到这些他们。
- 对于长期运行的后台服务,一些比较明显的问题可以及时的去解决,但是类似内存泄漏,数据库查询慢等需要长期运行才能发现的问题需要不同时间的数据对比才能发现。
- 随着业务请求量的提升,你的应用可能会出现「瓶颈」,如何找到「瓶颈」所在则尤为重要。
有了以上需求,我们来看看 OneAPM 能给我们提供什么 ?
- 响应时间(Response time)
- 性能指数(Apdex score) Apdex 是一个国际通用标准,是对用户体验满意度的量化值。
- 吞吐量(Throughput)
- Web事务(Web transactions)
- 数据库(Database)
- 外部服务(External Service)
OneAPM 优化实例
本文截图来自于在 OneAPM 官网上的 demo 实例。在看到响应时间排序图中我们可以看到,排在第一的是登录页面,用户使用的第一个页面就是登录,这个页面就如此慢会让用户的第一印象就不好,我们来看看它到底慢在什么地方了。
点击如图所示的列表项,我们能看到 OneAPM 给我们列出了最近的慢事物列表:
我们点击一个最近的慢事务进去能够看到 OneAPM 已给出了非常清晰的信息显示本次慢事物的耗时主要是在外部请求中。
由于本实例应用登录页面会调用第三方登录接口来实现登录,为了进一步确定是这个第三方登录接口比较缓慢,我们还要排除是由于自身请求量大导致的网络请求缓慢,此时可以使用 OneAPM 提供的 Si 监控来查看应用所在的服务器的情况。
我们的服务器的带宽是100M 的光钎,从 Si 给出的带宽信息可以确认网络问题是出在第三方登录中。
总结
对于初学者,尽管可以在开发初期借助本地的 spy-js 查看各种完整的 call stack 及其耗时,但是线上运行的应用的内存泄漏问题,以及慢事务是需要应用长期运行后才能发现的,所以 OneAPM 的出现让优化线上应用变得如此简单,能极大的方便我们持续优化线上的应用。
OneAPM 是应用性能管理领域的新兴领军企业,能帮助企业用户和开发者轻松实现:缓慢的程序代码和 SQL 语句的实时抓取。想阅读更多技术文章,请访问 OneAPM 官方博客。
- 如何用 OneAPM 优化你的 Node.js 应用?
- 如何用 Node.js 爬虫?
- 亲手教会你如何用苹果ios应用的推送
- node---http模块,如何用node.js做简单的服务器环境http.createServer
- 国内最大的 Node.js 社区将 New Relic 的监控产品换成了 OneAPM
- Node.js 4.0.0:灵雀云和 OneAPM 的整合测试
- 按位与 按位或 按位异或(位运算到底可以干什么,有些什么经典应用,以及如何用位运算优化你的程序)
- 如何用Cocos2d-JS快速开发一个微信游戏《来自喵星的你》
- 如何用Cocos2d-JS制作一个《你是我的小羊驼》游戏
- 如何用js求圆的面积
- Node.js 应用性能优化的五个技巧
- 如何为你的 Node.js 应用挑选数据库
- 告诉你如何用C#写出iOS与Android应用
- 如何用node+express创建简单的服务
- 教你如何用Camera作为你view的背景
- 【JS】如何用原生JS实现jQuery的ready方法
- 如何用关键字优化网站?
- 如何用一个糟糕的流程毁掉你的公司
- MAC上反编译android apk---apktool, dex2jar, jd-jui安装使用(含手动签名)
- c语言之建立单链表
- Rendering with Vertex Lighting
- Linux学习笔记----CentOS 在什么情况下,进入图形界面安装模式 ??
- BST
- 如何用 OneAPM 优化你的 Node.js 应用?
- 三角形 1249 (打表+数学)
- iOS开发 Debug-发布时取消打印(NSLog)
- LeetCode----Remove Element
- HDU 5428 【水+因子。。?】
- ubuntu更新内核
- spoj(196)——Musketeerst
- C语言之单链表操作之查找
- CoordinatorLayout与滚动的处理