写点什么

使用 AppDynamics 对 Healthcare.gov 进行性能分析

  • 2013-11-25
  • 本文字数:1053 字

    阅读完需:约 3 分钟

奥巴马医改和 healthcare.gov 网站不断涌现出的灾难性问题,以及遭受的抨击,引发了 AppDynamics ——它是一家业界领先的性能监控公司——对此撰写的一篇深度分析的技术文章。在文章中,AppDynamics 描绘了这样一幅图像:在构建网站过程中使用了幼稚可笑的开发计划。

AppDynamics 指出的缺陷涉及了应用服务器端和客户端的性能问题,以及内部 API 之间不一致的协议。

其测试的方式是基于 Firefox ,使用流行的浏览器定制和调试插件 GreaseMonkey ,注入 AppDynamics 的 JavaScript 代理。

通过分析观测到的响应时间指标,“你会发现,在服务器端和客户端,其综合表现都非常糟糕。”

首先从注册页面开始,分析强调了服务器端和客户端之间各自的响应时间。“该页面需要接近 71 秒来载入,其中 59 秒应该归咎于服务器端;而接近 12 秒应该归咎于客户端的数据载入和渲染。”

但分析否认道:“没有访问服务器端以测量响应时间,或是访问所有将服务器端与客户端连接在一起的网段来测量延迟,我们就无法完全确定为何客户端如此缓慢。我们都知道应该进行 JS 和 CSS 优化,但如果服务器端和 / 或网络连接非常缓慢,那么其影响就会呈现在在最终用户的浏览器中。”

下一步,依照网站的工作流测试了是个人档案页面,它在加载结束时呈现为空白页。这是由于某些不正确的 Ajax 请求:“这种糟糕的 Web 应用表现会把最终用户逼疯。尽管看起来页面成功载入了(至少对浏览器来说是这样),但实际上并非如此。”

接下来该文章解释道,Ajax 响应返回了 HTTP 503 状态码(“服务不可用”),意味着 HTTP 服务器能够接到请求,但由于服务器端的一些问题,无法对此做出任何响应。

文章总结的一些建议如下:

  1. 纠正功能整合错误。文章提出了这样的设想:“显然,在没有恰当的监控和测试的情况下, Healthcare.gov 就发布了。而这正是一个导致许多用户交互出现失败、抛出异常,以及保险公司收到不完整数据记录表的主要原因。”
  2. 识别并解决扩展性方面的瓶颈。“需要快速找出软件中的性能瓶颈,并对其进行调优。”

文章指出,“这并不是一个罕见的问题。我们发现许多公司一次又一次重蹈覆辙,他们最终找到我们寻求帮助,以解决其应用性能缺陷。”

在最后,AppDynamics 免费向奥巴马政府提出了一项有助于解决该网站问题的建议:“我们认为美国人民应该享有一套功能合适的、不会浪费他们时间的系统;而且现代化的、服务为导向的应用架构,需要一些针对在这些复杂环境中使用而特别设计的监控工具。有鉴于此,AppDynamics 将随时响应政府需求以提供帮助。”

查看英文原文: Healthcare.gov Performance Analysis by AppDynamics

2013-11-25 07:301800
用户头像

发布了 256 篇内容, 共 84.1 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

大型商业银行的超级App是如何“组装”而成?

Onegun

超级app 超级应用

Android动画之帧动画

芯动大师

android App 三周年连更

Java EE应用服务器的事务管理

mazhen

Java transaction JavaEE

怎么用systemd进行进程守护

linux大本营

Linux 进程 守护进程

算法题每日一练:组合总和 II

知心宝贝

数据结构 算法 前端 后端 三周年连更

xnginx在安全网关的应用场景

linux大本营

openresty 网关 web服务器

io_uring的10个技术点

linux大本营

高并发 异步 零拷贝 io_uring

Go HTTP 调用

陈明勇

Go golang HTTP 三周年连更

lwip_recv_tcp阻塞读取数据代码

linux大本营

TCP 阻塞队列

OpenResty接口的详细讲解

linux大本营

负载均衡 反向代理 openresty 网关 HTTP服务

用户痛点与根因识别:解锁企业数字化转型成功的关键

L3C老司机

OceanBase 4.1解读:我们想给用户一个开箱即用的OceanBase部署运维工具

OceanBase 数据库

数据库 oceanbase

薪资结构重铸: Zebec将业务范围扩大到Web2薪资管理领域

股市老人

AI能训练出符合“核心价值观”的人工智能吗?

FN0

人工智能 ChatGPT Claude

c语言实现timer的10个技术点

linux大本营

进程 定时器, Timer 文件描述符

一文读懂物联网 MQTT 协议之实战篇

老周聊架构

三周年连更

华为云 OpenTiny 跨端、跨框架企业级开源组件库项目落地实践直播即将开启!

Kagol

开源 前端 Vue 3 UI组件库

程序踩内存后,应该怎么排查

linux大本营

进程 内存管理 内存泄漏 C++

一键生成通用的web服务(gin)完整项目代码,开发效率至少提升2倍

vison

golang Web gin框架 代码自动生成

AI视觉实战1:实时人脸检测

轻口味

android AI 三周年连更

WebIntents 翻身战,操作系统实现无缝集成的王牌

鼎道智联

AI

生活中的不确定性,如何应对?

Jack

小程序自定义组件开发

程序员海军

小程序 三周年连更

C++如何拿到线程池的返回值

linux大本营

线程池 C++

挑战 30 天学完 Python:Day10 循环语句

MegaQi

Python3 挑战30天学完Python 三周年连更

OpenCV图像模糊操作(1) | 社区征文

A小调协奏曲

OpenCV C++ 三周年连更

2023-04-20:有一堆石头,用整数数组 stones 表示 其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎 假设石头的重量分别为 x 和

福大大架构师每日一题

golang 算法 rust 福大大

Django笔记十二之defer、only指定返回字段

Hunter熊

Python django defer only

火山引擎边缘云,助力业务敏捷创新

火山引擎边缘云

CDN 边缘计算 火山引擎 边缘云

借由Net5.5G,看到运营商的新沧海

脑极体

5.5G

使用AppDynamics对Healthcare.gov进行性能分析_Java_Vikram Gupta_InfoQ精选文章