当前位置: 首页 > news >正文

Jmeter 压测-性能调优5大注意

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

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

1、代码

①缓存

  1. 缓存是典型的空间换时间,在软件项目中,用的最多的是redis缓存,第一次查询的时候,将查询数据存储到缓存中。

  2. 后面每次查询,先从缓存中取数据,缓存中没有,再去数据库中取数据。

②多线程&多进程

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

③异步

  1. 针对某些客户端的请求,在服务端可能需要针对这些请求做一些附属的事情

  2. 这些事情其实用户并不关心或者用户不需要立即拿到这些事情的处理结果

  3. 这种情况就比较适合用异步的方式处理这些事情。

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

④批处理

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

⑤简化代码​​​​​​​

  1. 如:减少循环的层数,减少递归,在循环中少声明变量,少做分配和释放内存的操作,尽量把循环体内的表达式抽到循环外

  2. 条件表达的中的多个条件判断的次序,尽量在程序启动时把一些东西准备好

  3. 注意函数调用的开销(栈上开销)

  4. 注意面向对象语言中临时对象的开销,小心使用异常等。

⑥前端-减少http 请求次数​​​​​​​

  1. 每个http请求从建立到关闭都需要一定的时间,因此减少http请求的数目可有效提高访问性能。

  2. 网页中的的图片、form、flash等等元素都会发出http请求。

⑦前端-减少DNS查询次数​​​​​​​

  1. DNS 的作用是将 URL 转化为实际服务器主机 IP 地址,实现原理是分级查找

  2. 查找过程需要花费 20~100ms 的时间

  3. 所以一方面我们要加快单次查找的时间

  4. 另一方面也要减少一个页面中资源使用了多个不同域的情况;

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

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

⑨前端-减少网页大小

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

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

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

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

  1. 使用 CDN 相当于对静态内容做了缓存,并把缓存内容放在网络供应商(ISP)的机房

  2. 用户根据就近原则到 ISP 机房获取这些被缓存了的静态资源,因此可以大幅提高性能;

2、数据库

①添加/修改索引​​​​​​​

  1. 通过索引查询,缩短查询时间

  2. 通过修改联合索引,增加索引命中率

②分区分库分表​​​​​​​

  1. 不同服务或者不同业务的数据配置不同的数据库,这样在进行增删改查时候可减少数据库磁盘的读写频率。

  2. 备注:分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介

③数据库读写分离

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

④修改数据库连接池

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

⑤硬件配置

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

3、网络

调整带宽

4、硬件

①增加机器数量

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

②提高硬件配置

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

③JVM

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

④中间件

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

5、系统架构

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

  1. 时间(对于应用服务器而言):软件的响应时间…

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

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

​​​​​​​

http://www.zskr.cn/news/141713.html

相关文章:

  • 2025年立式Sipos沉积设备制造商权威推荐榜单:立式低应力Si3N4沉积设备/立式TEOS沉积设备/立式POLY沉积设备源头厂家精选 - 品牌推荐官
  • Open-AutoGLM源码哪里下?一文解决99%的克隆与编译难题
  • 20小时快速学习法 -
  • 3天掌握Open-AutoGLM本地化部署:从环境配置到API服务上线的完整时间表
  • 从零上手:用AI智能体实现微信自动回复功能全攻略
  • 【大模型开发必备资源】:Open-AutoGLM官方开源地址及本地部署全流程
  • 2025年热门的夏令营/小学生夏令营本地招生资讯 - 品牌宣传支持者
  • 2025年年终需求管理系统推荐:技术实力与生态集成能力双维度实测TOP5 - 十大品牌推荐
  • 【阿里云Open-AutoGLM性能优化秘籍】:3倍加速大模型推理的底层逻辑与实操技巧
  • 2025年电机压装机直销厂家权威推荐榜单:伺服压力机/伺服压装机/伺服液压机源头厂家精选 - 品牌推荐官
  • 北京泰美泉有实力吗、北京泰美泉的产品价格优势明显吗? - 工业推荐榜
  • 10 个AI论文工具,助继续教育学员轻松完成毕业写作!
  • 揭秘Open-AutoGLM测试难点:3步实现精准模型验证与性能评估
  • 2025年天津全屋定制展厅设计效果图品牌权威推荐榜单:天津全屋定制效果图/天津定制衣柜效果图/天津全屋定制家具十大品牌源头服务商精选 - 品牌推荐官
  • 超详细版Windows下Arduino IDE安装图文教程
  • 好写作AI:工程技术报告,AI助力清晰说明设计流程与技术参数
  • 2025年智能运维平台选型指南:核心产品深度解析与对比
  • 2025汽车内饰植绒设备专业厂家TOP5权威推荐:新深度测评指南 - mypinpai
  • 2025年靠谱的远程医疗影像诊断/远程医疗平台热门排行榜 - 品牌宣传支持者
  • Open-AutoGLM关键技术突破(稀疏激活+动态图优化=未来已来)
  • OAuth2认证配置:实现第三方账号安全登录
  • Anything-LLM与主流大模型集成指南(Llama3、Qwen等)
  • 【c++中间件】WebSocket介绍 WebSocketpp库的使用 - 教程
  • 非营利组织知识沉淀:志愿者交接不再依赖口述传承
  • 选择文件夹路径( FolderBrowserDialog太难用,利用OpenFileDialog来选择文件夹)
  • 51c视觉~3D~合集10
  • 如何通过CI/CD流程自动化更新anything-llm服务?GitOps实践
  • 巴厘岛目的地婚礼推荐-在印度洋之畔,定格一生挚爱时刻,极致浪漫与策划推荐指南 - charlieruizvin
  • 实测显示,部分平台的语义分析能力接近人工修改水平
  • 开源项目贡献者访谈:聊聊开发anything-llm背后的思考