全网最全,性能测试-性能瓶颈分析详全,优秀的性能测试工程师养成记...

news2025/1/15 0:56:57

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

内存分析

内存的使用情况是系统性能中重要的因素之一,频繁的页交换及内存泄露都会影响到系统的性能(在这主要以Windows系统为主)。

内存分析用于判断系统有无遇到内存瓶颈,是否需要通过增加内存等手段提高系统性能表现。

1、查看Memory\Available Mbytes指标
在对系统进行操作系统级别的内存分析时,首先需要通过该指标(Available Mbytes:Windows系统自带计数器的一个计数值)建立一个初步的印象,了解性能测试过程中系统是否仍然有足够的内存可用。

如果该指标比较小,系统可能存在内存不足方便的问题,这时需要继续依据具体问题进行下一步分析。

2、注意Pages/sec、Pages Read/sec和Page Faults/sec的值
操作系统经常会利用磁盘交换方式提高系统的可用内存量或内存使用效率。Windows和Unix操作系统都提供了类似的方法来支持磁盘交换计数,而这三个指标直接反应了操作系统进行磁盘交换的频度。

如果Pages/sec的计数持续高于几百,很可能有内存方面的问题产生,但Pages/sec的值很大不一定表明内存有问题,而可能是运行使用内存映射文件的程序所致。

Page Faults/sec值表示每秒发生的页面失效次数,页面失效次数越多,说明操作系统向内存读取的次数越多。

Pages Read/sec的计数值阈值为5,如果计数值超过5,则可以判断存在内存方面的问题。

3、根据Physical Disk计数器的值分析性能瓶颈
对Physical Disk计数器的分析包括对Pages Read/sec和%DiskTime及Average Disk Queue Length的分析。

如果Pages Read/sec的值很低,同时%DiskTime和Average Disk Queue Length的值很高,则可能是磁盘瓶颈;

但如果队列长度增加的同时Pages Read/sec并未降低,则是由于内存不足。

处理器分析

处理器(CPU)也可能是系统的瓶颈。
下面是针对处理器进行分析的步骤:

1、查看System%Total Processor Time性能计数器的计数值
该计数值用于体现服务器整体的处理器利用率;对于多处理器系统而言,该计数值体现的是所有CPU的平均利用率。

如果该数值持续超过90%,则说明整个系统面临着处理器方面的瓶颈,需要通过增加处理器来提高性能。

注意事项:由于操作系统本身的特性,在某些多CPU系统中,该数据本身并不大,但如果CPU之间负载状况极不均衡,也应该视作系统产生了处理器方面的瓶颈。

2、查看每个CPU的Processor%Processor Time、Processor%User Time和Processor%Privileged Time
Processor%User Time是指系统非核心操作消耗的CPU时间;如果该值较大,可以考虑是否能通过算法优化等方法降低该值。

如果该服务器是数据库服务器,Processor%User Time值较大的原因很可能是数据库的排序或者函数函数操作消耗了过多的CPU时间,此时可考虑对数据库系统进行优化。

3、研究分析系统处理器瓶颈
查看System\Processor Queue Length计数器的值;当该计数器的值大于CPU数量总数+1时,说明产生了处理器阻塞。

在处理器的%Process Time值很高时一般都伴随着处理器阻塞,但产生处理器阻塞时,Processor%Process Time计数器的值并不一定很大,此时就需要查找处理器阻塞的原因。

%DPC Time的计数值越低越好。在多处理器系统中,如果该值大于50%并且Processor%Processor Time值非常高,则考虑加一个网卡来提高性能。

磁盘I/O分析方法

磁盘I/O也是影响系统性能的一个关键因素。如果所分析的计数器指标来源于数据库服务器、文件服务器或流媒体服务器,磁盘I/O更容易成为瓶颈。

磁盘I/O的分析方法如下:

1、计算每个磁盘的I/O数
每个磁盘的I/O数可以用来与磁盘的I/O能力进行对比,如果经过计算得到的每个磁盘I/O数超过了磁盘标称的I/O能力,则说明确实存在磁盘的性能瓶颈。

下表给出了每个磁盘I/O的计算方法:

请添加图片描述

PS:各种不同的RAID方式,其每个磁盘I/O数的计算方法都不同。

2、与Processor\Privileged Time合并进行分析
如果在Physical Disk计数器中,只有%Disk Time值较大,其他值都比较适中,则硬盘可能会是瓶颈;

若几个值都比较大,且数值持续超过60%,则可能是内存泄漏。

3、根据Disk sec/Transfer进行分析
一般而言,定义Transfer数值小于15位优秀,介于1530之间为良好,3060毫秒之间为可以接受,超过60毫秒则需要考虑更换硬盘或硬盘的RAIN方式。

进程分析方法

1、查看进程的%Processor Time值
每个进程的%Processor Time值反映出进程所消耗的处理器时间。将不同进程所消耗的处理器时间进行对比,可以容易的看出具体哪个进程在性能测试过程中消耗了

最多的处理器时间,从而可以据此针对应用进行优化。

2、查看每个进程产生的页面失效
可以用每个进程产生的页面失效和系统的页面失效来判断哪个进程产生了最多的页面失效;该进程要么是需要大量内存的进程,要么是非常活跃的进程,可对其重点分析。

3、了解进程的Process\Private Bytes
Process\Private Bytes是指进程所分配的无法与其他进程共享的当前字节数量;其主要用来判断进程在性能测试过程中有无内存泄漏。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只要心中有梦,就不要轻易放弃。每一次挫折都是迎接成功的敲门砖。坚持努力,相信自己的能力,一定会走向辉煌。行动起来,未来已经在等着你了!

每一天都是一个新的开始,不要害怕失败,因为它是那些最勇敢的人才能品尝到成功的滋味。坚持自己的梦想,付出努力并保持耐心,你一定会收获丰硕的成果。记住,只要你愿意去追求,没有什么事情是不可能的。

只有在危难之际,才能看出一个人的真正实力。不要放弃,坚持到底,你一定会发现自己拥有更强大的内心。成功需要不断尝试和探索,相信自己,勇往直前。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

06:mysql---约束

目录 1介绍 2:约束演示(建表) 3:外键约束 4:外建行为 5:外建是否可以删除 6:多表查询 1介绍 1:概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 2:目的:保证数据库中数据的正确、有效性和完整性。 3:分类: 约束描述关键字非空约束限制…

ESP32S3---eFuse固化VDD_SPI释放GPIO45

使用esp-idf里面的esptool_py工具集吧.首先切换到工具所在目录. 比如WROOM设置(默认ttyUSB0或者ttyACM0): espefuse.py set_flash_voltage 3.3V 对于WROVER设置(默认ttyUSB0或者ttyACM0): espefuse.py set_flash_voltage 1.8V 运行后会提示你输入BURN,然后确认才能写,因为…

Vue电商项目--平台售卖属性和的排序操作制作

平台售卖属性的操作 就是点击平台的售卖属性,下面显示对应的内容 这里我们要借助这个props属性 这里块是平台的售卖属性,我们在这里绑定回调,一点击就把id传给父组件 我们需要把这俩个参数传进入 商品属性的数组: ["属性ID:属性值:…

FFmpeg学习:FFmpeg4数据结构分析

FFmpeg数据结构分析 FFMPEG中结构体很多。最关键的结构体可以分成以下几类: 1、解协议(http,rtsp,rtmp,mms) AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音…

【软件工程题库】第一章 软件工程概述

🕺作者: 迷茫的启明星 学习路线C语言从0到1C初阶数据结构从0到1 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

View的事件分发机制

View的事件分发机制 View的事件分发机制主要分为三点 ,第一点是Activity将点击事件分发给ViewGroup 第二点是ViewGroup将事件自己处理或者分发给子View 第三点便是子View自行处理,或者子View处理不了转交给ViewGroup 现在依次来看 Activity对点击事件的分发过程 Activit…

运用go语言的模板(template)写的第一个程序示例

一、模板(template)与渲染 模板其实就相当于一个简历模板,上面的格式都是已经确定了的渲染就是往对应的地方填写相应的数据 二、模板 模板文件通常定义为.tmpl和.tpl为后缀(也可以使用其他的后缀),必须…

手把手带你利用苹果手机使用美区礼品卡升级ChatGPT Plus,轻松搞定!

大家好,我是五竹。 昨天用苹果手机尝试了一下,借助App Store(苹果应用商店)升级 Plus,成功了!一共升级了三个号!有两个一气呵成,轻松搞定。最后一个可能触发风控了,但第…

OOB配对原理及应用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言一、OOB是啥?二、OOB配对实践总结 前言 本文先简单介绍OOB配对的流程,然后结合CC2652蓝牙芯片调试OOB配对 一、OOB是啥? OOB就是…

博客系统后端设计(六) -实现登录页面要求强制登录功能

文章目录 实现页面要求强制登录实现思路1.约定前后端交互接口2.实现后端代码3.修改前端代码 实现页面要求强制登录 当用户访问列表页/详情页/编辑页的时候,要求用户已经是登录的状态了, 如果用户还没登录,就会强制跳转到登录页面。 实现思路…

一文盘点PoseiSwap近期的生态利好

PoseiSwap 是 Nautilus Chain 上首个 DEX,其继承了 Nautilus Chain 的模块化、Layer3 以及 Zk-rollup 所带来的优势(TPS 在 2000),包括吞吐量、安全度、隐私性等。基于 Nautilus Chain,PoseiSwap 也将具备基于 Zk 的隐…

Ceph crush运行图

Crush map介绍 ceph集群中由monitor负责维护的运行图包括: Monitor map:监视器运行图osd map:osd运行图PG map:PG运行图Crush map:crush运行图Mds map:mds运行图 crush map是ceph集群物理拓扑的抽象&…

HTML、PHP实战:搭建一个网页登录页面。

一、实验环境。 MySQL5.7.26 FTP0.9.60 Apache2.4.39 我这里用的是PHPstudy小皮一键搭建的。 数据库 二、登录页面。 登录页面前端代码 文件名&#xff1a;denglu.html <html> <head> <meta charset"UTF-8"> <title>登录界面</ti…

StarRocks 极速全场景 MPP 数据库介绍及使用

一、简介 StarRocks 是一款高性能分析型数据仓库&#xff0c;使用向量化、MPP 架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。既支持从各类实时和离线的数据源高效导入数据&#xff0c;也支持直接分析数据湖上各种格式的数据。兼…

Linux基本指令3

目录 一.基本常用指令 指令1&#xff1a;find命令&#xff1a; 指令2&#xff1a;which命令&#xff1a; 指令3&#xff1a;alias命令&#xff1a; 指令4&#xff1a;whereis which&#xff0c;find&#xff0c;whereis这三个搜索命令的区别&#xff1a; 指令5&#xff…

Vue初始

一、Vue的概述 Vue 发音类似 view Vue 游雨溪 鱿鱼须 鱿鱼须不懂Vue Vue历史 Angular React Vue 2013 Seed 2013 Seed命名为Vue 2014 Vue正式发布 0.8 - 0.10 2015 6.13 0.12 2015下半年 vue-cli vueRouter vueX 版本好1.0 vue正式跨入大众 渐进式框架(JQuery) 2016国…

[CTF/网络安全]攻防世界unserialize3解题详析及php序列化反序列化实例讲解

[CTF/网络安全]攻防世界unserialize3解题详析及php序列化反序列化实例讲解 _wakeup()及php序列化反序列化序列化字符串结构分析_wakeup()的利用 解题思路伪属性数量绕过 解题姿势总结 _wakeup()及php序列化反序列化 序列化是指将数据结构或对象转换为可传输或可存储的格式的过…

14.Kafka系列之K8S部署集群

1. 部署方式选择 基于Kafka3.X后的集群搭建方式主要分为两种&#xff0c;一种是基于Zookeeper管理方式&#xff0c;一种是基于KRaft模式&#xff0c;本文主要介绍Kafka-KRaft集群模式搭建 纠正文章1.Kafka系列之K8S部署单节点中基于Zookeeper方式的部署方式错误&#xff0c;其…

Godot引擎 4.0 文档 - 入门介绍 - Godot设计理念

本文为Google Translate英译中结果&#xff0c;DrGraph在此基础上加了一些校正。英文原版页面&#xff1a; Godots design philosophy — Godot Engine (stable) documentation in English Godot设计理念 既然你已经了解了&#xff0c;让我们来谈谈 Godot 的设计。 每个游戏…

(转载)MATLAB智能算法30个案例分析(1)——遗传算法工具箱

以下内容大部分来源于《MATLAB智能算法30个案例分析》&#xff0c;仅为学习交流所用。 1理论基础 1.1遗传算法概述 遗传算法(genetic algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则。遗传算法是把问题参数编码为染色体,再利用迭代…