本文主要讲解如何使用OneAPM提供的信息从内存,cpu使用,响应速度等方面优化nodjes应用。 适用于定位于刚刚使用nodejs开发后台的读者。
本文你可看到以下内容
为什么要使用OneAPM
1. 初次开发nodejs应用的时候,由于缺乏对nodejs的全面认识以及知识的缺乏会将大量的时间用在开发功能上,所以开发的功能必将留下一些“坑”。为了填补这些“坑”,首先你得能找到这些他们。 2. 对于长期运行的后台服务,一些比较明显的问题可以及时的去解决,但是类似内存泄漏,数据库查询慢等需要长期运行才能发现的问题需要不同时间的数据对比才能发现。 3. 随着业务请求量的提升,你的应用可能会出现“瓶颈”,如何找到“瓶颈”所在则尤为重要。 有了以上需求,我们来看看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的出现让优化线上应用变得如此简单,能极大的方便我们持续优化线上的应用。