Jmeter 压测 —— 性能调优5大注意!

1047 篇文章 0 订阅
1022 篇文章 3 订阅

性能调优主要涉及这些方面:

代码、数据库、网络、硬件、系统构架

1、代码

①缓存

缓存是典型的空间换时间,在软件项目中,用的最多的是redis缓存,第一次查询的时候,将查询数据存储到缓存中。后面每次查询,先从缓存中取数据,缓存中没有,再去数据库中取数据。

②多线程&多进程

使用多线程,缩短任务时间

③异步

针对某些客户端的请求,在服务端可能需要针对这些请求做一些附属的事情这些事情其实用户并不关心或者用户不需要立即拿到这些事情的处理结果这种情况就比较适合用异步的方式处理这些事情。

作用:缩短接口响应时间,使用户的请求快速返回,用户体验更好。

④批处理

是把一堆基本相同的请求批量处理,这样可以一批数据只写一次数据库,减少数据库的操作次数;

⑤简化代码

如:减少循环的层数,减少递归,在循环中少声明变量,少做分配和释放内存的操作,尽量把循环体内的表达式抽到循环外条件表达的中的多个条件判断的次序,尽量在程序启动时把一些东西准备好注意函数调用的开销(栈上开销)注意面向对象语言中临时对象的开销,小心使用异常等。

⑥前端-减少http 请求次数

每个http请求从建立到关闭都需要一定的时间,因此减少http请求的数目可有效提高访问性能。网页中的的图片、form、flash等等元素都会发出http请求。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

⑦前端-减少DNS查询次数

DNS 的作用是将 URL 转化为实际服务器主机 IP 地址,实现原理是分级查找查找过程需要花费 20~100ms 的时间所以一方面我们要加快单次查找的时间另一方面也要减少一个页面中资源使用了多个不同域的情况;

⑧前端-减少或避免页面跳转

页面跳转相当于又打开一个新的页面,耗费的时间就会比较长,所以要尽量避免使用页面跳转;

⑨前端-减少网页大小

网页过大,如果要快速下载,下载网页内容会需要比较大的带宽,带宽就有可能成为瓶颈。

⑩表单压缩,减少网络传输数据量

典型的时间换空间,虽然压缩消耗时间,但如果瓶颈在网络,用时间换空间反而能节省时间。

⑪使用内容分发网络(CDN)

使用 CDN 相当于对静态内容做了缓存,并把缓存内容放在网络供应商(ISP)的机房用户根据就近原则到 ISP 机房获取这些被缓存了的静态资源,因此可以大幅提高性能;

2、数据库

①添加/修改索引

通过索引查询,缩短查询时间通过修改联合索引,增加索引命中率

②分区分库分表

不同服务或者不同业务的数据配置不同的数据库,这样在进行增删改查时候可减少数据库磁盘的读写频率。备注:分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介

③数据库读写分离

从主库写入数据,从库读取数据,减少数据库磁盘的繁忙频率。

④修改数据库连接池

重新定义数据库连接池数,减少任务的排队数量。

⑤硬件配置

提高数据库CPU、内存、磁盘等硬件配置,提升处理能力。

3、网络

调整带宽

4、硬件

①增加机器数量

对于实现了分布式服务,增加服务器数量

②提高硬件配置

提高服务器CPU、内存、磁盘等配置,提高单台服务器的处理能力

③JVM

合理的分配堆与非堆的内存、GC

④中间件

调整ES、MQ中间件的配置架构,如增加中间件机器配置、单机改为分布式

5、系统架构

单机改为分布式集成、负载均衡

时间(对于应用服务器而言):软件的响应时间…空间(对于硬件服务器而言):服务器的磁盘使用率、CPU使用率、内存空闲率…

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于JMeter分布式压测性能调优,以下是一些建议: 1. 确保服务器性能:确保所有参与分布式压测的服务器都具备足够的硬件资源,包括CPU、内存、磁盘和网络带宽等。这可以避免服务器成为性能瓶颈。 2. 合理设置线程数:在分布式压测中,线程数是一个重要的参数,需要根据服务器性能和测试需求进行合理的设置。过多的线程数可能会导致服务器负载过高,过少则无法发挥最大的压测能力。 3. 优化测试计划:确保测试计划中只包含必要的请求和步骤。删除不必要的请求和断言,减少额外的开销。 4. 合理使用断言:断言是用来验证响应结果的,但过多的断言会增加服务器的负载。只保留必要的断言,并使用高效的断言方式,如使用正则表达式替代XPath。 5. 配置合理的结果收集:JMeter会将每个请求的结果收集起来,这可能会产生大量的数据。合理配置结果收集,包括选择需要收集的数据、设置合理的采样率等。 6. 使用合适的远程启动配置:在分布式压测中,需要配置一个或多个远程服务器来执行测试。确保远程服务器的配置合理,包括JMeter版本一致、Java版本一致等。 7. 启用持久连接:启用HTTP请求中的Keep-Alive选项,可以减少连接的建立和断开次数,提高压测性能。 8. 使用合适的协议:对于不同的压测场景,选择合适的协议,如使用HTTP协议进行简单的Web应用压测,使用JDBC协议进行数据库压测等。 9. 监控和调优:在压测过程中,实时监控服务器的性能指标,如CPU使用率、内存使用率等。根据监控结果进行调优,如适时调整线程数、增加服务器资源等。 以上是一些常见的JMeter分布式压测性能调优建议,根据具体情况和需求,还可以进一步进行优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值