• 0
  • 0
分享

  大多数的性能测试工作人员分为以下三个阶段:

  1、出了问题看资源,资源占用如果很高,报以窃喜的心态,恩,发现了,原理是资源瓶颈。

  2、资源没有出现瓶颈,通过一些技术手段分析,发现是组件的配置文件有问题,例如:server的并发策略有问题,带宽有问题,找到了线路短板性能中的短板,到了这个阶段在我看来是比较牛的测试。

  3、以上均无问题的情况下,考虑数据结构和算法我个人接触到的来说,现在大多数的人员都是在仰望第二阶段,摸索第三阶段,希望从代码级发现出性能的问题,进行问题的发现和解决,也符合我们的bug越早发现修复的成本越低的理论。同时,也是一名性能测试工程师高薪的象征。

  性能测试调优哪些方面入手,如下几点:

  1、TPS波动较大

  原因解析:出现TPS波动较大问题的原因一般有网络波动、其他服务资源竞争以及垃圾回收问题这三种。

  · 性能测试环境一般都是在内网或者压测机和服务在同一网段,可通过监控网络的出入流量来排查;

  · 其他服务资源竞争也可能造成这一问题,可以通过Top命令或服务梳理方式来排查在压测时是否有其他服务运行导致资源竞争;

  · 调优方案:网络波动问题,可以让运维同事协助解决(比如切换网段或选择内网压测),或者等到网络较为稳定时候进行压测验证;

  · 资源竞争问题:通过命令监控和服务梳理,找出压测时正在运行的其他服务,通过沟通协调停止该服务(或者换个没资源竞争的服务节点重新压测也可以);

  · 垃圾回收问题:通过GC文件分析,如果发现有频繁的FGC,可以通过修改JVM的堆内存参数Xmx,然后再次压测验证(Xmx最大值不要超过服务节点内存的50%!)

  2、高并发下大量报错

  原因解析:常见的原因有短连接导致的端口被完全占用以及线程池最大线程数配置较小及超时时间较短导致。

  调优方案:

  · 短连接问题:修改服务节点的tcp_tw_reuse参数为1,释放TIME_WAIT scoket用于新的连接;

  · 线程池问题:修改服务节点中容器的server.xml文件中的配置参数。

  3、集群类系统,各服务节点负载不均衡

  原因解析:出现这类问题的原因一般是SLB服务设置了会话保持,会导致请求只分发到其中一个节点。

  调优方案:可通过修改SLB服务(F5/HA/Nginx)的会话保持参数为None,然后再次压测验证;

  4、并发数不断增加,TPS上不去,CPU使用率较低

  原因解析:SQL没有创建索引/SQL语句筛选条件不明确、代码中设有同步锁,高并发时出现锁等待;

  调优方案:

  · SQL问题:没有索引就创建索引,SQL语句筛选条件不明确就优化SQL和业务逻辑;

  · 同步锁问题:是否去掉同步锁,有时候不仅仅是技术问题,还涉及到业务逻辑的各种判断,是否去掉同步锁,建议和开发产品同事沟通确认;

  5、压测过程中TPS不断下降,CPU使用率不断降低

  原因解析:出现这种问题的原因可能是因为线程block导致,当然不排除其他可能;

  调优方案:如果是线程阻塞问题,修改线程策略,然后重新验证即可;

  总结:性能测试调优应该注意的要点:

  要点 1:在应用系统的设计开发过程中,应始终把性能放在考虑的范围内。

  要点 2:确定清晰明确的性能调优目标是关键。

  要点 3:必须保证性能调优后的程序运行正确。

  要点 4:系统的性能更大程度上取决于良好的设计,调优技巧只是一个辅助手段。

  要点 5:性能调优过程是迭代渐进的过程,每一次调优的结果都要反馈到后续的代码开发中去。

  要点 6:性能调优不能以牺牲代码的可读性和可维护性为代码。


作者:佚名    

来源http://www.51testing.com/html/79/n-7798279.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   前言  写本篇的原因很简单,2023年还有3个月就结束了,要给自己及其他小伙伴做下总结;  以前呢,都是自己做总结,围绕的无非就是对团队的贡献,个人成长;  但是现在不一样,需要帮小伙伴做总结,也需要为测试团队做总结,突然觉得压力山大,而且也要给优秀同学提名奖项;  因此,就有了本篇的内容,目的很简单,测试岗在评绩效时,到底有哪些维度?  业务测试  测试岗位的分工,粗略分为业务测试跟测试开发,两者因岗位的不同,而要求自然也会有区别,这里就先聊聊业务测试;  从结论而言,业务测试肯定是第一位的,是产品的基础,因此围绕业务会有很多衍生品,比如性能、兼容性、稳定性、安全等等,尽管如此,业务测试...
            0 0 1261
            分享
          • 大家好呀,我是一名苦逼的前端开发工程师,为啥苦逼呢,这不,项目下周就要上线了,但是后端还没给我接口,没有接口我就无法调试,工作停滞不前,我也只能坐着干着急。我报告给了我的老板山哥: 老板,这后端不靠谱啊,都快上线了,接口还没出来。山哥回道,别着急呀,这不有 Mock 吗?Mock,什么是 Mock 啊?我一脸狐疑,问向山哥。山哥慢条斯理说,就是前端自己启动一个 HTTP 服务,模拟后端接口的数据,这样就无需等待后端接口开发完成了,不会因为后端开发延误而阻塞你的工作进程了。嗯,真是个不错的注意,我仿佛发现了新大陆!以后再也不用受后端拖累了,心里暗暗开心,但转念一想不对啊,时间不够啊!我...
            9 9 987
            分享
          • 通常情况下面试会问到类似的问题,最主要的并不是要说出多么多的测试点,而应该展现的是你的思考方式。一般对于这类型的问题,会从以下几方面入手:功能、外观、性能、安全、兼容、易用性,当然也可能会有一些特殊的测试,因此要结合实际情况考虑。那么对于登陆界面的测试,也主要从以下方面入手:1、功能测试对于登陆界面,常用的功能有账户及密码输入框、注册链接、忘记密码链接、其他方式登陆等,那么我们就要逐一测试这些功能能否正常使用、链接能否正常跳转、提示是否正常等。输入正确的用户账户和密码,能够成功登陆并跳转至正确页面;输入错误的用户账户或密码,校验失败,提示错误信息;什么都不输入,直接点登陆,检查提示信息;检查注...
            0 0 1353
            分享
          •   三星决定比其他公司更早抓住 AGI 半导体部门这座潜在的"金矿"。据报道,公司已在硅谷成立了一个新的半导体开发组织,旨在开发下一代 AGI 芯片。三星电子,尤其是其代工部门在提升半导体能力方面进展迅速,该公司宣布了新的下一代工艺,并最终找到了客户。不过,在人工智能时代,三星与台积电等竞争对手相比并没有取得长足进步。  这是因为该公司在半导体采购方面无法吸引英伟达(NVIDIA)等公司的注意,但随着世界过渡到以 AGI 为主导的技术领域,这家韩国巨头似乎计划领先一步。  人工通用智能(AGI)显然是继 GenAI 之后的下一个大事件,其目的显而易见,因为这项技术有望复制人...
            0 0 1011
            分享
          • 购物车对于电商系统,还是比较重要的一个功能模块,看上去比较简单,但是关于这个功能的测试分析还是不是那么轻松的,因为它真的不仅仅需要功能测试,还需要其他技术的支持才能做好。功能上:购物车是否需要登陆才能进入;账号退出后,购物车添加的内容是否还在;购物车页面是否能够显示添加的商品的详细信息(商品名称、链接、数量、单价、总价);一条商品的单价、数量、总价的计算是否正确;多条商品是否能够以列表显示;多条商品同时显示,能否在相同的位置显示相同的数据;购物车能够返回商品首页继续浏览;能够移除购物车中的商品;购物车能够调整商品的数量;限购商品数量调整时能不能超过限购数量;没有限购要求的商品,添加数量能不能超...
            0 0 2052
            分享
      • 51testing软件测试圈微信