学习
实践
活动
专区
工具
TVP
写文章
专栏首页CSIG质量部压测团队【项目实战-4】nodejs开启gzip,QPS提升6倍
原创

【项目实战-4】nodejs开启gzip,QPS提升6倍

【问题表现】

在压测项目生产环境中,发现首页的QPS一直在8k,未达到压测目标,但压测其他接口QPS能达到5w,需要排查出问题进行优化。

首页接口压测结果:

其他接口压测结果:

【问题分析与排查思路】

  1. 梳理整个压测链路:jmeter->1个公网CLB->web接入层(Node,40台机器) 查看接入层40台机器的资源消耗情况,发现负载不高,没有压力。 查看前端平均响应时间是 20ms,但整个链路耗时1.5s,需要排查下耗时长的原因。
  2. 根据压测链路从CLB来看是否成为瓶颈,有开发提出建议,增加一个CLB看性能是否提升。

由于再增加一个CLB,需要前面加ecdn,压测链路发生改变:

ecdn(15个ip轮询)->waf->2个公网clb->web(node,40台机器)

压测结果如下:

1个公网clb->web(node,40台机器)

8.77k

ecdn(15个ip轮询)->waf->2个公网clb->web(node,40台机器)

9.11k

3. 进行后端开启gzip验证,看流量是否有降低,看cpu负载影响大小

jmeter修gzip的请求方式

压测结果如下:

每个请求的response由55.5kB缩小到9.4kB

CLB的出带宽4000Mbps缩小到750Mbps,CPU的负载由10%增加到15%

ecdn(15个ip轮询)->waf->1个公网clb->web(node,40台机器)

不开启zip

7.48k

ecdn(15个ip轮询)->waf->1个公网clb->web(node,40台机器)

开启zip

9.05k

4. 由上面的压测结果来看,jmeter开启gzip后,CLB资源消耗减少,恢复至最开始状态后,采用1个CLB进行验证。

压测链路:1个公网clb->web(node,40台机器)

压测结果如下:

1个公网clb->web(node,40台机器)

不开启zip

8.77k

1个公网clb->web(node,40台机器)

开启zip

36.01k

5. 在压测的过程中,还发现不同地区的压测集群压测结果不一致,越靠近压测环境的集群,压测的qps更高。

项目中使用广州的压测集群比北京的压测集群,压测的QPS更高。

北京集群压测结果:

【总结】

在压测前端项目中涉及到很多数据资源的传输,开启gzip压缩功能可以节省网络流量。主要分为2个部分

  • jmeter端通过在http信息头里添加名称:Accept-Encoding值: gzip
  • 服务端通过使用node中间件---compression,实现压缩功能。

本项目使用的nodejs框架,需额外关注实现gzip压缩需要使用中间件compression,一般情况下使用Apache框架是由默认配置项实现gzip功能。

在分析问题的过程中,可以采用控制变量法进行一一排查,提高问题排查效率。

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

相关文章

  • 【必看】社区文章目录

    Nanako
  • 社区精华文章目录

    cailynyu
  • 复盘node项目中遇到的13+常见问题和解决方案

    笔者之前陆陆续续接手过几个nodejs项目, 也参与过几个有点意思的nodejs开源项目, 最近把其中遇到的一些问题和解决方案做一个梳理, 避免大家继续踩坑. ...

    徐小夕
  • 干货!我是如何在腾讯实践webpack优化的

    这次的文章主题是「webpack」,将叙述我在腾讯的QAPM项目中进行前端工程化的实践,前方高能预警⚠️

    源心锁
  • 工具| Nodejs暴力破解实践

    135编辑器 问题描述: 当我们在进行网站安全性测试的时候,通常会遇到网站不存在登陆账号错误锁定机制、无验证码防爆破机制等。 如果用户名和密码采用的是明文传输方...

    漏斗社区
  • 【腾讯云前端性能优化大赛】前端首屏性能优化实战

    在现在的网络环境下,用户访问网页时,如果首屏在3S以内是可以接受的,但是如果首屏在10S以上,绝大部分用户都不会继续等待,这样就会导致用户的流失,对于个人或者企...

    xwj
  • 服务器小白的我,是如何将 node+mongodb 项目部署在服务器上并进行性能优化的

    本文讲解的是:做为前端开发人员,对服务器的了解还是小白的我,是如何一步步将 node+mongodb 项目部署在阿里云 centos 7.3 的服务器上,并进行...

    夜尽天明
  • 如何从零入门React?实战做个FM应用吧

    南慕容,北乔峰,降龙十八掌,斗转星移,先接招再说。辗转反侧,开始了React的学习。然而公司项目暂时并没有用到React...Orz,不过为了提升实战经验,还是...

    D2
  • 如何将node+mongodb项目部署在腾讯云服务器,并进行性能优化的

    本人一直觉得程序员应该有一个自己的个人网站,拥有自己的域名与服务器。学知识或者测试项目的时候可以用来测试。

    云上云
  • 语义技术全线免费,人脸识别离线能力开放,百度为 AI 开发者带来福利

    AI 研习社按,在「燎原计划 2018」暨百度 AI 开发者实战营第二季北京站上,百度发布了三项重大消息:开放 EasyDL 平台、发布「深度学习工程师评价标准...

    AI研习社
  • 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目

     系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2...

    葡萄城控件
  • 互联网常见架构接口压测性能分析及调优手段建议

    常见的互联网架构中,一般都能看到spring+mybatis+mysql+redis搭配的身影,在我所服务的公司亦是如此。一般来说,应用内部的接口都是直接调用的...

    lyb-geek
  • jmeter5.x与beanShell[测试专题]

    协议是⼀种约定,规定好⼀种信息的格式,如果发送⽅按照这种请求格式发送信息,那么接 收端就要按照这样的格式解析数据,这就是协议

    高大北
  • 微服务框架saf-6:saf-http之度量

    3.解放业务,使业务方专注于业务逻辑本身:通过注解以搭积木方式引入各式资源,每个资源都是一行注解,极大提升业务方产出效率。

    千里行走
  • 初识Nginx性能安全优化

    最近小编的项目上线了官方网站,同大部分Web服务网站相同,小编项目的Web站采用了LNMP(Linux、Nginx、Mysql、PHP)架构。其中Nginx的作...

    用户5521279
  • 如何用gzip进行前端性能优化?

    HTTP 可以对传输的内容进行压缩,减少网络实际传输数据的大小。原理就是 服务器对文件进行 gzip 压缩后,再进行传输,浏览器收到资源后再解压的过程。

    Learn-anything.cn
  • TestOps性能测试学习之第六天

    上周六是我们TestOps性能进阶课程第八天——性能测试实战的学习。这一天的课程是由测试行业的大牛叶微微老师为我们带来的,必须是干货满满。老师教大家一起学习企业...

    TestOps

扫码关注腾讯云开发者

领取腾讯云代金券