• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、Jmeter简介Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。Jmeter具备高移植性,可以实现跨平台运行。Jmeter可以实现分布式负载。Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同时取样。Jmeter具有较高扩展性。二、Jmeter安装安装JDK,必须JDK1.7以上的版本,推荐1.8的版本;进入官网:http://jmeter.apache.org/download_jmeter.cgi 下载最新的Jmeter版本,下载后解压到非中文目录,如:D:\;配置Jmeter的环境变量;(1)&nb...
            0 0 1195
            分享
          • 昨天人民日报海外版的推文,着实引爆了互联网世界的 G 点,这么明显的故意勾搭 Google,还是头一次。其实 8 月 1 号的时候,有一家美媒就发文说谷歌可能会回归大陆,虽然后来被证实,这个报道的图片是盗用的,和新闻无关,所以消息的可信度也就大打折扣了,但就算这样,消息在国内 IT 圈仍然引起了不少的关注,有期待的,有不看好的,有等着看百度笑话的。我的主业是做测试,也算是技术人吧,所以我当时发了一条朋友圈,表达了自己的观点。但是很遗憾,我说的太隐晦,没人能看懂我要说的是什么(其实是人微言轻,没人关注)。其...
            1 1 2530
            分享
          •   英国政府表示,周二将出台一项新的法律,遏制谷歌、Meta和亚马逊等美国科技巨头对数字市场竞争的压制。  这项立法还将加强对消费者的保护,便于他们退出在线订阅服务,使之可以更加从容地应对虚假评论。  作为英国的反垄断监管部门,英国竞争和市场管理局(CMA)两年前设立了专门的数字市场部(DMU),并配备了社交媒体等新兴市场的专业监管知识,但该部门还是缺乏保障其正常行驶职权的法律“牙齿”。  此项法案一旦获得英国议会通过,就将对这一现状进行纠偏,为数字市场部赋予新的权力,使之可以对全球营业额超过250亿英镑(312亿美元)或英国营业额超过10亿英镑的科技公司进行处罚。  尽管遭到科技巨头的反对,...
            0 0 682
            分享
          •   苹果公司日文版网站的代码多次提到"Apple Pencil Pro",预计新机型将于 5 月 7 日发布。据了解,2024 年 5 月 7 日的苹果"Let Loose"发布会将集中展示新款iPad Air和iPad Pro,但即使仅从其标识来看,新款Apple Pencil也有望亮相。现在,苹果日本官方网站上的代码显示,"Apple Pencil Pro"这个名字被多次提及。  提到的内容都在网站的页面源代码和开发人员视图中。目前还没有公开可见的引用。  在苹果公司日本网站的代码中,可以看到多次提到"Apple Pen...
            0 0 735
            分享
          • 功能测试可以说是件简单的事情,但是想要做好却并不那么容易。笔者所测的业务是商业化广告相关的CRM系统,整条业务线有18个子系统,很多子系统的流程相当长且繁复,功能逻辑复杂,想要上线后没有漏测着实不容易。不过从我接手以来,有幸还没有发生大的漏测问题。今天笔者就来聊聊自己对于功能测试的一些个人经验和思考。接到需求后,我一般会将需要做的工作分为三部分,分别为:需求分析、测试用例、以及测试执行。当然,有一个很重要的大前提,那就是要足够熟悉你所测的系统。下面就分别来聊聊这三部分。需求分析+设计分析拿到一个需求,第一步应该做的就是需求分析。这个环节很多人不在乎,觉得这不是测试的工作,而是产品应该的工作,测...
            10 9 1696
            分享
      • 51testing软件测试圈微信