网站内容优化方案( 测试报告优化系统的特点及空间优化方法解析! )

优采云 发布时间: 2021-10-10 11:33

  网站内容优化方案(

测试报告优化系统的特点及空间优化方法解析!

)

  

  对测试报告进行针对性优化 压力测试中发现问题后,需要进行针对性的优化。对于不同的系统,这个过程的策略是不准确的

  是确定的,但大致可以分为以下几个步骤:

  1. 定位性能瓶颈,找出系统存在的问题。不同的系统有不同的特点,在性能瓶颈上有不同的表现。一般来说,以下几个方面通常比较大

  优化空间:

  (1)磁盘 I/O 和文件操作

  因为磁盘I/O读写速度比内存慢很多,如果程序在运行,如果需要等待磁盘I/O完成,就低

  有效的 I/O 操作会拖累整个系统。

  (2)网络操作

  读写网络数据的情况与磁盘I/O类似。由于网络环境的不确定性,尤其是网上数据的读取

  写入和网络操作可能比本地磁盘 I/O 慢。

  (3)CPU

  对于对计算资源要求较高的应用,由于长时间不间断地使用CPU资源,会导致CPU的竞争

  性能问题。比如科学计算、3D渲染等对CPU有强烈需求的应用。

  (4)高并发下的上下文切换和锁竞争等

  如果不优化高并发程序,就会出现大量的锁竞争。激烈的锁竞争会显着增加线程上下文切换的开启。

  Pin,对性能影响很大

  (5)数据库

  大多数应用都离不开数据库,海量数据的读写操作会相当耗时。并且应用程序可能需要等待

  数据库操作完成或返回请求的结果集后,缓慢的同步操作将成为系统瓶颈。

  2.确定调整目标并提出解决方案。在发现系统的性能问题后,需要做出相应的解决方案。

  影响性能的典型问题,例如:

  (1) 系统不响应高并发场景,如数据库连接池过低、服务器连接数超过上限、数据库锁控制

  考虑不周等。

  (2)内存泄漏,如长期运行下内存未正常释放,出现宕机等。

  (3)数据库优化不足,业务增长,相关表众多,SQL优化不足等。

  定位以上问题后,下一步就是提出合理的调整目标。

  比如服务器资源有限,可以通过配置更多机器、服务云端等方式进行优化;

  如果对高并发的支持不好,可以在代码层面进行优化,提高并发支持;

  可以针对 SQL 语句优化数据库性能问题,例如慢速查询。

  3.实施方案,进行迭*敏*感*词*发。上一步的分析给出了初步的性能优化方案。下一步是对计划中提到的内容进行有针对性的改进。

  这个过程可以通过应用敏捷思想来迭代。开发完成后,为了比较优化结果,可以将调优后的系统

  进行小规模测试。

  4. 执行基准测试并分析调优结果数据显示了一切。性能优化的结果不能简单地用“感觉系统越来越快”来衡量。最好在优化前比较结果。

  测试结果出来后,优化结果以图表的形式直观展示出来。基准测试是指科学测试工具的设计

  和方法,实现对某类测试对象某性能指标的定量和可比性测试。比较测试结果并得出结论

  结合能力评估和其他任务,系统可以最大限度地发挥其有效性。

  一个阶段的优化工作完成后,最好进行总结反思,比如这次优化是否达到了目标?系统整体

  性能有没有提高?用户体验有没有提升?以及如何在接下来的开发工作中做得更好。

  使用JMeter进行压力测试实践 JMeter是目前比较流行的测试工具,这里简单介绍一下相关应用。

  1.JMeter安装和使用Linux下可以直接下载安装,MAC系统输入,

  下载 apache-jmeter-3.1.tgz。

  下载完成后,解压得到安装包,进入解压目录/bin/,点击jmeter图标启动JMeter。

  2.基本组件介绍 使用JMeter需要熟悉一些基本概念。这是编辑测试计划的界面:

  

  (1)Threads 线程组

  该组件主要用于控制Jmeter并发产生的线程数。只有一个组件(线程

  Group),可以理解为每个线程都是一个虚拟用户。所有其他类型的组件必须是(线程组)节点

  子节点。

  (2)ConfigElement 配置单元

  配合Sample组件,主要用于配置Sample如何发起访问服务器的请求。这个东西的主要特点

  重点是可以将Sample的一些常用配置放在一个元素中,方便管理,配置单元有作用域。范围

  就像树的关系一样,越是上层节点范围越大,离叶子节点越近

  范围越小,上层范围的配置就可以被覆盖。

  (3)定时器

  这主要用于调整(线程组),控制每个线程运行测试逻辑的时间间隔(例如:发出请求)。

  当然,在这个下面有很多类型的定时器。它们的主要功能是调整时间间隔,但每个组件都有策略。

  稍微不一样。

  (4)预处理器/后处理器

  与 HOOK 类似,在执行测试之前和之后执行一些脚本逻辑。我没有专门用过这个组件

  完了,不过一般功能是这样的,非关键部件。

  (5)断言

  意思是在Sample发送请求后,判断返回的结果是否符合预期。

  (6)*敏*感*词*器

  该组件不同于通常在 Web 中编程的侦听器。它从中获取操作以及 Jemeter 测试的运行。

  行期间数据的一个组件,经常用到聚合报表组件,从中可以统计出测试的TPS,以及响应

  时间等关键测试数据。

  3. 执行第一次测试(1) 设置线程组参数

  首先在TestPlan下添加一个ThreadGroup组件,设置线程组组件的各种参数。

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线