《软件性能测试分析与调优实践之路》(第2版) 读书笔记(一)总体介绍(上)-真正从性能分析与调优来看性能测试

《软件性能测试分析与调优实践之路》(第2版) 是清华大学出版社出版的一本图书,作者为张永清,全书共分为9章,如下图所示

图书介绍:《软件性能测试分析与调优实践之路》(第2版)

1、为什么需要性能测试与分析

1)、了解系统的各项性能指标,通过性能压测来了解系统能承受多大的并发访问量、系统的平均响应时间是多少、系统的TPS是多少等。

2)、发现系统中存在的性能问题,常见的性能问题如下:

  • 系统中是否存在负载均衡不均的情况。负载均衡不均匀一般指的是在并发的情况下,每台服务器接收的并发压力不均匀,从而导致部分服务器因为压力过大而出现性能急剧下降,以及部分服务器因为并发过小而出现资源浪费的情况。
  • 系统中是否存在内存泄漏问题。内存泄漏是指应用程序代码在每次执行完后,不会主动释放内存资源而导致内存使用一直增加,最终会使服务器物理内存全部耗光,程序运行逐渐变慢,最终因为无法申请到内存而退出运行。内存泄漏多数情况下是非常缓慢的增加,不容易被发现,一般需要通过高并发性能压测才能暴露。
  • 系统中是否存在连接泄漏问题。连接泄漏种类非常广泛,可以是数据库连接泄漏、HTTP连接泄漏或者其他的TCP/UDP连接泄漏等。除了系统实际情况需要建立长连接外,一般短连接都应该是用完就需要关闭和释放。
  • 系统中是否存在线程安全问题。线程安全问题是在高并发访问的多线程处理系统中经常会出现的问题,如果系统中存在线程安全问题,就会出现多个线程先后更改数据,造成所得到的数据全部是脏数据,有时候甚至会造成巨大的经济损失。
  • 系统中是否存在死锁问题。死锁问题也是多线程系统中经常会遇到的一个经典问题,一般常见的有系统死锁、数据库死锁等。
  • 系统中是否存在网络架构或者应用架构扩展性问题。扩展性问题一般是指在性能指标无法满足预期的情况下,通过横向或者纵向扩展硬件资源后,系统性能指标无法按照一定的线性规律进行快速递增。
  • 发现系统的性能瓶颈在何处。性能瓶颈一般是指因为某些因素而造成系统的性能无法持续上升。

3)解决性能压测中存在的问题和性能瓶颈,通过不断的性能调优,使得系统可以满足预期的性能指标。

2、性能分析与调优实践(流程)

《软件性能测试分析与调优实践之路》(第2版) 一书中总结如下:

3、性能分析与调优实践(调优模型)

《软件性能测试分析与调优实践之路》(第2版) 一书中总结如下:

4、性能分析与调优实践(分层分析)

下图展示了《软件性能测试分析与调优实践之路》(第2版) 一书中如何从上到下或者从下到上来分层分析性能问题

5、性能分析与调优实践(推理论证)

下图展示了如何通过推理论证的方式来分析性能问题

6、常见的性能调优方式:

1)、性能分析与调优实践(缓存调优)

《软件性能测试分析与调优实践之路》(第2版) 一书中详细论证了如何来解决如下缓存中面临的问题:

  • (1)如何让缓存的命中率更高?
  • (2)如何注意防止缓存穿透?
  • (3)如何控制好缓存的失效时间和失效策略?
  • (4)如何做好缓存的监控分析?
  • (5)如何防止缓存雪崩?

2)、性能分析与调优实践(同步转异步)

3)、性能分析与调优实践(削峰填谷)

4)、性能分析与调优实践(拆分)

5)、性能分析与调优实践(任务分解与并行计算)

6)、性能分析与调优实践(索引与分库分表)

  • 按照冷热数据分离的方式:一般将使用频率较高的数据称为热数据,查询频率较低或者几乎不被查询的数据称为冷数据。冷热数据分离后,热数据单独存储,这样数据量就会下降下来,查询的性能自然也就提升了,而且还可以更方便地单独针对热数据进行I/O性能调优。
  • 按照时间维度的方式:比如可以按照实时数据和历史数据分库分表,也可以按照年份、月份等时间区间进行分库分表,目的是尽可能地减少每个库表中的数据量。
  • 按照一定的算法计算的方式:此种方式一般适用于数据都是热数据的情况,比如数据无法做冷热分离,所有的数据都经常被查询到,而且数据量又非常大。此时就可以根据数据中的某个字段执行算法(注意:这个字段一般是数据查询时的检索条件字段),使得数据插入后能均匀地落到不同的分表中去(由算法决定每条数据是进入哪个分表),查询时再根据查询条件字段执行同样的算法,就可以快速定位到是需要到哪个分表中去进行数据查询。
相关推荐
yunwei371 小时前
eBPF 入门实践教程:BPF Token,安全的委托式权限与程序加载
linux·后端·性能优化
CSharp精选营5 小时前
SaveChanges 一万行?换批量操作快 10 倍
性能优化·efcore·批量操作·csharp·executeupdate
爱喝水的鱼丶7 小时前
SAP-ABAP:S/4 HANA ABAP 新特性入门:与 ECC ABAP 的核心差异、架构优势与学习路径规划
运维·数据库·性能优化·sap·abap·hana·开发交流
余槐i14 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
余槐i17 小时前
Skills 增至 30 个,Claude Code 反而变慢:token 与加载实测
性能优化·开发工具·ai agent·claude code·agent skills
xiaoqiMikko18 小时前
fastjson 1.2.84 的补丁关掉了一个缓存:addAccept 包前缀白名单下,反序列化慢了 13~28 倍
java·后端·性能优化
万联WANFLOW18 小时前
LLM 调用很快,AI Agent 为什么还是慢?关键路径分析与优化方法
性能优化·llm·aigc
yunwei3720 小时前
eBPF 教程:BPF 迭代器用于内核数据导出
linux·后端·性能优化
蒸鱼Yuzheng21 小时前
Shader 指令成本回归:离线编译、设备权重与误报控制
ci/cd·性能优化·gpu·shader·vulkan
UWA1 天前
UGUI性能排查实战:隐藏血条后耗时下降,减少顶点为何没改善
ui·性能优化·cpu·游戏开发