JavaScript Storefront 应用程序的性能问题的表现形式有多种,最典型的是响应时间(response time)的恶化,甚至由于资源耗尽导致的网站完全宕机。 由于 JavaScript Storefront 涉及许多组件,因此确定性能问题的根源可能具有挑战性,如下图所示:

一个客户请求发送到 JavaScript Storefront 之后,Storefront 应用对该请求的处理,将涉及以下组件,所有这些都可能是问题的根源:

  • 客户端(浏览器或 CDN)
  • Apache Web 服务器(通过 JS Storefront vhost),也就是 Commerce Cloud 支持的 redirect endpoint 功能的实现
  • Nginx Web 服务器(jsapps pod 的 jsapps 容器)
  • Server.js(jsapps pod 的 jsapps-ssr 容器 - 仅在启用 SSR 模式时相关)
  • CDN(上面没有说明,但是如果使用 CDN,那么它将位于此级别 - 如果未找到缓存的响应,请求可以在此处结束或继续到源服务器)
  • Apache Web 服务器(通过 API vhost)
  • 商务网络服务(API pod)
  • 数据库

一般情况下,我们可以从 Dynatrace 的 Services 面板开始,这里能看到不同类别的服务的平均响应时间,最慢的响应时间,以及每分钟处理的请求数量。

作为性能分析的切入点,我们可以从应用响应用户请求的最外层服务开始入手,单击右侧的服务列表中的 ... 符号。

下图的含义是,设置过滤器的值为 响应时间 >= 6s, 这将允许仅可视化最慢请求的响应时间热点。

另外注意,Promise.all 这个 API,如果使用不恰当,也可能带来性能问题,特别是用大量的操作调用它的时候。

例如,我们有一个 ids 数组,需要从数据库中根据 id 读取实体。 如果列表中有 10 个 id,那不是问题,但如果有 1000 个的话,不建议一次性从数据库中完成全部的数据读取操作。一种更优的解决方案是,采用批量操作 + 游标的方式,从数据库中读取数据。

使用 Dynatrace 对 Node.js 应用的性能数据进行分析相关推荐

  1. MongoDB+Node.js+express简单实现数据的提交与回显

    这是一个从前端到后台到数据库都是用js写的小demo,所以我们的口号是:将javascript进行到底 一.项目目录 从图片上也可以看出来,用了一个伪MVC的设计模式,简单来说controllers文 ...

  2. 【4】eCharts展示node.js提供的大盘数据-加入买卖点连线

    区区几行代码就可以完成前后端,真是太棒了! eChart提供了丰富而简单的接口用于展示K线. node.js提供服务端的数据可以将前后端连接起来. 而这些仅仅用了少的可怜的几行代码就做到了. node ...

  3. 如何在Node.js中处理POST数据?

    如何提取Node.js中 HTTP POST方法发送的表单数据( form[method="post"] )和文件上传? 我已经阅读了文档,谷歌搜索并没有发现任何东西. funct ...

  4. node.js转换shp文件数据的坐标系

    接上文:IDEA中配置运行node.js 本文使用两个js开源库完成对shp文件的坐标系转换(支持GCJ-02,WGS84等大多数主流坐标系) 一.安装所需的npm包 1.读写shp文件的js库gda ...

  5. 【Node.js】写一个数据自动整理成表格的脚本

    前言 企业项目进行数据埋点后,埋点事件名需要整理成Excel表格便于统计,目标是将下图左侧数据转化成下图右侧的Excel表格: 考虑到左侧埋点数据是随项目迭代增加的,埋点数据每增加一次我就要把数据一条 ...

  6. 计算机毕业设计Node.js+VueJava远程健康数据管理系统(程序+源码+LW+部署)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: Node.js+ Vscode + Mysql5.7 + HBuilderX+Navicat11+Vue ...

  7. 使用 node.js 爬取页面数据

    使用到的技术 node.js 这个不用过多介绍 cheerio 抓取页面模块,为服务器特别定制的,快速.灵活.实施的jQuery核心实现.适合各种Web爬虫程序 (摘自百度) fs node内置的文件 ...

  8. node.js 获取异步方法里面数据 的方式

    第一种 使用回调函数: function getData(callback){setTimeout(function(){var name = 'xxxx';callback(name);}, 100 ...

  9. node.js实现文件和数据的压缩与解压缩

    在web性能优化的时候,经常会使用到压缩神器gzip.当客户端(浏览器)向服务端发起资源请求时,服务器首先会对比较大的资源进行压缩,然后再返回给客户端,以此加快资源的访问速度. 下面来看压缩和解压缩的 ...

最新文章

  1. 自动化测试框架搭建-报告-4
  2. mybatis的工作原理
  3. 索引 - 数据结构 - BTREE
  4. 完整全面的Java资源库(包括构建、操作、代码分析、编译器、数据库、社区等等)...
  5. 尝鲜.net core2.1 ——编写一个global tool
  6. stackoverflow_Stackoverflow的见解:投票最多的是Spring 4问题
  7. redis如何设置定时过期_redis补充6之Redis 设置过期时间
  8. 英雄联盟更新防沉迷规则:未成年用户节假日每日限玩3小时
  9. c语言程序设计的常用算法,《C语言程序设计的常用算法.doc
  10. (1)-(Two SUM-在数组中找到两个数,他们的和为给定的数)-(数组遍历)
  11. 基于Java毕业设计新能源汽车租赁管理系统源码+系统+mysql+lw文档+部署软件
  12. 使用tinyxml2将gps经纬度转换为kml和gpx格式文件
  13. psp android 模拟器,安卓psp模拟器
  14. php 磅和像素的换算,将g/cm³换算为磅每液量加仑(美国) (克每立方厘米换算为磅每液量加仑(美国))...
  15. python判断手机号运营商_匹配手机号码及运营商校验
  16. HanLP --- 依存句法分析
  17. DecisionTreeRegressor参数详解
  18. 拖延症患者的自我反省
  19. 联通开4g没显示无服务器,为什么显示4g却没网络
  20. 记一次注销联通卡的吐血经历

热门文章

  1. 全网最细:Jest+Enzyme测试React组件(包含交互、DOM、样式测试)
  2. Spock单元测试踩坑
  3. php phpexcel用法,PHPExcel中文帮助手册|PHPExcel使用方法(分享)
  4. 双目立体视觉(一) 基本原理和步骤
  5. Qt笔记(五十八)之设置鼠标形状
  6. 如何有效地提取背景音乐并消除人声?分享这几个方法给大家!
  7. 阿里巴巴中国站上传图片到1688 API 返回值说明
  8. java编译点九图_【Android】点9图,点九图
  9. 几招教你最简单的网站站内优化
  10. 更新Edge后百度网盘找不到倍速看这里