本文主要讲解如何使用 OneAPM 提供的信息从内存、CPU 使用、响应速度等方面优化 Node.js 应用。适用于定位于刚刚使用 Node.js 开发后台的读者。本文系 OneAPM 用户投稿,本网站授权转发。

本文你可看到以下内容

  • 为什么要使用 OneAPM
  • OneAPM 优化实例

为什么要使用 OneAPM ?

  1. 初次开发 Node.js 应用的时候,由于缺乏对 Node.js 的全面认识以及知识的缺乏会将大量的时间用在开发功能上,所以开发的功能必将留下一些「坑」。为了填补这些「坑」,首先你得能找到这些他们。
  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 的出现让优化线上应用变得如此简单,能极大的方便我们持续优化线上的应用。

本文系 OneAPM 工程师编译整理。想阅读更多技术文章,请访问 OneAPM 官方博客

如何用 OneAPM 优化你的 Node.js 应用?的更多相关文章

  1. Node.js使用supervisor遭遇‘supervisor’不是内部或外部命令,如果解决?

    如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你 在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止 Node.js ...

  2. 一名全栈工程师Node.js之路-转

    Node.js 全球现状 虽然 Node.js 在国内没有盛行,但据 StackOverflow 2016 年开发者调查,其中 node.js .全栈.JavaScript 相关的技术在多个领域(包括 ...

  3. 国内最大的 Node.js 社区将 New Relic 的监控产品换成了 OneAPM

    国内最知名的 CNode 社区把 New Relic 的监控产品换成了 OneAPM .难道 APM 的老大 New Relic 已经被 OneAPM 超越? 毋庸置疑,在全球应用性能管理 SaaS ...

  4. Node.js V0.12 新特性之性能优化

    v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化. 本文会介绍其中最值得注意的几个. http://www.infoq. ...

  5. Node.js 4.0.0:灵雀云和 OneAPM 的整合测试

    关于 Node.js 4.0.0 稳定版刚刚推出,备受期待,迫不及待地想用它写点东西:此外,要把 Demo 放到 Internet 上得有一个公网 IP ,看到灵雀云挺不错的而且提供域名解析,简直业界 ...

  6. 【译】 Node.js v0.12的新特性 -- 性能优化

    原文: https://strongloop.com/strongblog/performance-node-js-v-0-12-whats-new/ January 21, 2014/in Comm ...

  7. Node.js V0.12新特性之性能优化

    v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化.本文会介绍其中最值得注意的几个. 支持塞住模式的可写流 现在可写流可以 ...

  8. Node.js timer的优化故事

    前几天nodejs发布了新版本4.0,其中涉及到一个更新比较多的模块,那就是下面要介绍的timer模块. timers: Improved timer performance from porting ...

  9. 你不知道的Node.js性能优化,读了之后水平直线上升

    本文由云+社区发表 "当我第一次知道要这篇文章的时候,其实我是拒绝的,因为我觉得,你不能叫我写马上就写,我要有干货才行,写一些老生常谈的然后加上好多特技,那个 Node.js 性能啊好像 D ...

随机推荐

  1. 《HTML5与CSS3基础教程》学习笔记 ——One Day

    第一章 1.    邮箱地址的URL地址包括:mailto:+邮箱地址 2.    ../表示向上走一级,开头直接使用/表示根目录 第三章 1.    <header>: role = “ ...

  2. Xcode中为代码添加特殊标记

    有时候,我们需要在代码中搜索特殊的符号或者代码段,根据符号或使用搜索功能导航代码段效率并不算高.为了使用普通的英语标识重要的代码片段,可在代码中插入特殊格式的注释.这些注释不会在应用程序中添加任何特殊 ...

  3. ZK framework on Java

    Quick start: https://www.zkoss.org/documentation Live demo: https://www.zkoss.org/zkdemo/file_handli ...

  4. php curl post

    public static function curlPost($url, $data=array()) {        $ch = curl_init();        if (is_array ...

  5. webpack入门(译)

    本文由官方Tutorial Getting Started整理翻译,因为该指南解决了我在上手webpack过程中遇到的诸多问题.所以在这里推荐给各位新手们~ WELCOME 这份指南始终围绕一个简单例 ...

  6. 通过 Javacore 了解线程运行状况

    Javacore 是一个当前 JVM 运行状态的快照.通过对Javacore 的分析,可以了解在 JVM 中运行的应用程序的当前状态,比如是否“卡”在某一点上,或在某些代码上运行时间太长. Javac ...

  7. JQuery解析JSon

    JsonCreatet.ashx页面 JSonAnalysis.aspx测试页面 一般处理程序中使用Newtonsoft.Json来序列化json 页面使用Jquery 来解析Json数据 Jquer ...

  8. HotSpot Builder Utility安装指南

    系统需求硬件- 一台带有1个以太网卡的电脑(宿主机)- 一个无线路由器 软件- VirtualBox 4.1或更高的版本.下载网址:http://www.virtualbox.org/- 我们提供的最 ...

  9. Ubuntu下codeblocks汉化

    code::blocks是一个十分好用编辑环境,一个在手,无所不能,为了更好的支持中文,我列出了汉化的方法: 1下载中文汉化包:http://pan.baidu.com/s/1hqvNZbI 2.解压 ...

  10. Linux内核目录

    linux目录结构 目录 1.树状目录结构图 2./目录 3./etc/目录 4./usr/目录 5./var/目录 6./proc/目录 7./dev/目录 该文章主要来自于网络进行整理. 目录结构 ...