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

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

时间:2024-08-13 08:54:52浏览次数:13  
标签:分析 性能 系统 实践 调优 测试 数据

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

 

标签:分析,性能,系统,实践,调优,测试,数据
From: https://www.cnblogs.com/laoqing/p/18355238

相关文章

  • springboot 整合微信公众号--验证码推送(spring boot+测试号)
    一、公众号开发初探这里会使用到自己的域名进行交互,没有域名的小伙伴可以使用  内网穿透(NATAPP), 如果没有使用过的的同学请移步 20秒轻松上手NATAAPP(内网穿透)公众号整体流程:用户扫公众号二维码。然后发一条消息:验证码。我们通过api回复一个随机的验证码,并且存入re......
  • 提升前端性能的JavaScript技巧
    1.前端JavaScript性能问题前端JavaScript的性能问题可以显著影响Web应用的用户体验和整体性能。以下是一些常见的前端JavaScript性能问题:1.1.频繁的DOM操作问题描述:JavaScript经常需要与DOM(文档对象模型)交互来更新页面内容。然而,每次DOM操作都可能触发浏览器的重绘(rep......
  • C ++ 也可以搭建Web?高性能的 C++ Web 开发框架 CPPCMS + MySQL 实现快速入门案例
    什么是CPPCMS?CppCMS是一个高性能的C++Web开发框架,专为构建快速、动态的网页应用而设计,特别适合高并发和低延迟的场景。其设计理念类似于Python的Django或RubyonRails,但针对C++提供了更细粒度的控制和更高效的性能。主要特点和优点1.高性能与并发处理​Cp......
  • 2024暑假集训测试23
    前言比赛链接。T2部分分给得特别足,\(60pts\),而且他不可能剩下的数据全放菊花,所以得到了\(76pts\),但赛时想了很长时间正解,没有想出来,给后面题剩的时间不多,就都胡暴力了,\(T4\)甚至忘了剪枝,剪完之后\(20pts\to60pts\)没绷住。说到这儿要吐槽一下T4数据水的离谱,什么高级......
  • 软件测试基础
    1.技术:数据库: Linux:touch文件,mkdir目录,cp复制,cd打开,ll,ls,cat,find,Mv改名或移动,rm,chmod,chown,挂载mount,unmount查找grep-ntestfile.txtdu展示占用磁盘空间查找指定进程格式:ps-ef|greptestPs-aux显示所有使用者的进程scpLinux之间复制文件和目录。Sed编辑......
  • 盘点国内外有哪些软件测试认证
    在软件测试行业,技术实力固然重要,但手握权威认证更能为职业发展增添砝码。无论你是刚入行的新人,还是经验丰富的测试工程师,获取一张含金量高的软件测试认证都能让你的职场之路更加平坦。那么,国内外有哪些值得考取的软件测试认证呢?让我们一起来盘点。你是否正在为选择哪种测试认证而......
  • 【grpcurl】使用grpcurl测试GRPC服务
    一、场景   由于我们需要访问GRPC服务的方法,便于我们进行测试,所以我们开启了grpc服务的反射机制 二、安装grpcurl   https://github.com/fullstorydev/grpcurl   https://github.com/fullstorydev/grpcurl/releases下载对应环境的包即可sudodpkg-igrpcurl......
  • 巧用Array.forEach:简化循环与增强代码可读性;Array.forEach怎么用;面对大量数据时怎么提
    目录Vue.js中的Array.forEach:简化循环与增强代码可读性一、引言二、Array.forEach()的使用与技巧1、基本语法2、返回值3、使用Array.forEach()的优势4、Array.forEachvsfor循环5、Array.forEach()使用技巧三、Array.forEach()的应用情景1、复杂数据处理2、实时更......
  • 科大讯飞智文 2.0 版本发布;人工智能模型 Grok 2 测试版即将发布丨 RTE 开发者日报
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......
  • C# Binding之 DataContext 测试
    <Windowx:Class="WpfApp2.BindingTest5"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft......