本文主要讲解如何使用 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)
如何用 OneAPM 优化你的 Node.js 应用 -
外部服务(External Service)
如何用 OneAPM 优化你的 Node.js 应用
OneAPM 优化实例
本文截图来自于在 OneAPM 官网上的 demo 实例。在看到响应时间排序图中我们可以看到,排在第一的是登录页面,用户使用的第一个页面就是登录,这个页面就如此慢会让用户的第一印象就不好,我们来看看它到底慢在什么地方了。
如何用 OneAPM 优化你的 Node.js 应用点击如图所示的列表项,我们能看到 OneAPM 给我们列出了最近的慢事物列表:
如何用 OneAPM 优化你的 Node.js 应用我们点击一个最近的慢事务进去能够看到 OneAPM 已给出了非常清晰的信息显示本次慢事物的耗时主要是在外部请求中。
如何用 OneAPM 优化你的 Node.js 应用由于本实例应用登录页面会调用第三方登录接口来实现登录,为了进一步确定是这个第三方登录接口比较缓慢,我们还要排除是由于自身请求量大导致的网络请求缓慢,此时可以使用 OneAPM 提供的 Si 监控来查看应用所在的服务器的情况。 如何用 OneAPM 优化你的 Node.js 应用
我们的服务器的带宽是100M 的光钎,从 Si 给出的带宽信息可以确认网络问题是出在第三方登录中。
总结
对于初学者,尽管可以在开发初期借助本地的 spy-js 查看各种完整的 call stack 及其耗时,但是线上运行的应用的内存泄漏问题,以及慢事务是需要应用长期运行后才能发现的,所以 OneAPM 的出现让优化线上应用变得如此简单,能极大的方便我们持续优化线上的应用。
OneAPM 是应用性能管理领域的新兴领军企业,能帮助企业用户和开发者轻松实现:缓慢的程序代码和 SQL 语句的实时抓取。想阅读更多技术文章,请访问 OneAPM 官方博客。
网友评论