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

news/2024/11/18 10:32:51/文章来源:https://www.cnblogs.com/laoqing/p/18355238

《软件性能测试分析与调优实践之路》(第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性能调优。
  • 按照时间维度的方式:比如可以按照实时数据和历史数据分库分表,也可以按照年份、月份等时间区间进行分库分表,目的是尽可能地减少每个库表中的数据量。
  • 按照一定的算法计算的方式:此种方式一般适用于数据都是热数据的情况,比如数据无法做冷热分离,所有的数据都经常被查询到,而且数据量又非常大。此时就可以根据数据中的某个字段执行算法(注意:这个字段一般是数据查询时的检索条件字段),使得数据插入后能均匀地落到不同的分表中去(由算法决定每条数据是进入哪个分表),查询时再根据查询条件字段执行同样的算法,就可以快速定位到是需要到哪个分表中去进行数据查询。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783125.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人人都能搞定的大模型原理 - 神经网络

​人工智能的发展起步于1950年,期间经历了各种里程碑和变革,与此相关的神经网络技术也从最初的单层感知到复杂的层级和卷积神经网络一路创新和变革,不断推动人工智能领域的发展,直到 2022 年 ChatGPT 的问世,彻底引爆了大众的目光。 人工智能技术经历了漫长的迭代过程,无…

SpringBoot优雅开发REST API最佳实践

接口服务主要由两部分组成,即参数(输入)部分,响应(输出)部分。其中在SpringBoot中主要是Controller层作为API的开发处,其实在架构层面来讲,Controller本身是一个最高的应用层,它的职责是调用、组装下层的interface服务数据,核心是组装和调用,不应该掺杂其他相关的逻…

开源的 P2P 跨平台传文件应用「GitHub 热点速览」

起初,我以为这是“微软菩萨”降临,但玩了一圈下来,发现实际效果并没有那么惊艳,还没上周热门的开源项目有趣。例如,基于 WebRTC 的文件传输平台 ShareDrop,只需打开网页,就能在局域网或互联网上安全地跨设备传文件。而可自建支持目标检测和安全报警的视频监控平台 Friga…

删除个文件夹,vfs2上传文件到ftp就异常553,这么不经事吗

开心一刻 今天逛街碰到街头采访,一上来就问我敏感话题 主持人:小哥哥,你单身吗 我:是啊 主持人:你找女朋友的话,是想找一个小奶猫呢,还是小野猫呢 我沉思了一下,叹气道:如果可以的话,我想找个人,而且是女人上传文件 基于 commons-vfs2 实现文件到 FTP 服务器的上传,…

8.13信息学集训_数据结构

目录P1981 [NOIP2013 普及组] 表达式求值P1449 后缀表达式P5788 【模板】单调栈P1886 滑动窗口 /【模板】单调队列P1901 发射站P1540 [NOIP2010 提高组] 机器翻译P2085 最小函数值P6033 [NOIP2004 提高组] 合并果子 加强版P1631 序列合并P2251 质量检测P1305 新二叉树B3631 单向…

Windows Server 2025 中文版、英文版下载 (Inside Preview, updated Aug 2024) - 下一代 Windows 11 Server

Windows Server 2025 中文版、英文版下载 (Inside Preview, updated Aug 2024) - 下一代 Windows 11 ServerWindows Server 2025 中文版、英文版下载 (Inside Preview, updated Aug 2024) - 下一代 Windows 11 Server Windows Server 2025 正式版发布在即 请访问原文链接:http…

如何让您的 .NET应用程序更智能-- 请参加 8.20 的 .NET Conf--Focus on AI

Microsoft 将于 2024 年 8 月 20 日举办免费的 .NET Conf: Focus on AI。该虚拟活动为开发人员提供了如何集成 .NET 和 AI 以增强应用程序开发和用户体验的见解,其中包括专家和行业领导者的会议。 为什么你不应该错过这个活动? .NET Conf: Focus 系列由全年举行的小型现场活…

如何让您的 .NET应用程序更智能-- 请参加 8.20 的 .NET Conf ndash; Focus on AI

Microsoft 将于 2024 年 8 月 20 日举办免费的 .NET Conf: Focus on AI。该虚拟活动为开发人员提供了如何集成 .NET 和 AI 以增强应用程序开发和用户体验的见解,其中包括专家和行业领导者的会议。为什么你不应该错过这个活动?.NET Conf: Focus 系列由全年举行的小型现场活动…

如何让您的 .NET应用程序更智能-- 请参加 8.20 的 .NET Conf -- Focus on AI

Microsoft 将于 2024 年 8 月 20 日举办免费的 .NET Conf: Focus on AI。该虚拟活动为开发人员提供了如何集成 .NET 和 AI 以增强应用程序开发和用户体验的见解,其中包括专家和行业领导者的会议。为什么要参加?.NET Conf: Focus 系列由全年举行的小型现场活动组成。8 月 20…

读零信任网络:在不可信网络中构建安全系统17无控制器架构

无控制器架构1. 建立系统框图 1.1. 实现零信任网络的第一步重要工作是建立系统框图 1.2. 系统框图能够帮助我们透彻地理解内部网络和外部网络间的通信模式,有助于系统通信信道的设计 1.3. 对于现有的网络来说,建议首先利用日志工具来记录网络流量,然后观察通信信息的流向,一…

计算机体系结构技术杂谈(下)

计算机体系结构技术杂谈(下) 2.8 加速Transformer:稀疏注意力加速器分析 1. 稀疏注意力加速器简介 近年来, Transformer模型在深度学习的各个领域,包括自然语言处理、图像分类、图像及语音生成等方面,都取得了远超于传统神经网络模型的表现。最近的ChatGPT和各类基于Tran…

计算机体系结构技术杂谈(中)

计算机体系结构技术杂谈(中) 例2:进阶算法 基础算法无法解决中断恢复的问题,即假如有两个写寄存器的操作,指令1,指令2,可能乱序执行时指令2的结果已经将写回了寄存器,但是指令1还未执行,此时发生中断后,从指令1重新开始执行,就会重新进行两次写入,将会发生错误。 只…