并不是只要发出请求,服务器就一定有压力
但是并发数和服务器压力成正比
服务器主要是请求造成压力
也就是大量用户同时性请求
事务的通过数越高,性能越好
每秒事务通过数()简称:TPS/QPS
throughput:单位是字节。比如说带宽流量、io、磁盘IO等。
普遍情况而言,同一个业务情况下,throughput和tps一定是成正比变化的。
用户每秒向服务器提交的请求数
请求数不是鼠标的点击数,一个鼠标点击事件可能会有多个请求
单位时间内服务器处理的请求数量
体现软件系统的性能承受能力
吞吐量受服务器和网络性能的影响
单位:byte/s
通常来说主要是系统层面的资源利用率。
常见的有:CPU、内存、磁盘IO、网络带宽、连接数等。
对于资源利用率来说,作为性能指标的意义,其实是远远小于分析问题所在的意义
资源利用率主要是为了定位问题,用户只会关心反馈情况
?
虚拟用户需要CPU、内存、磁盘.网络带宽、连接数等资源。
响应时间(Response Time):
指从发送请求到接收到完整响应所经过的时间,整个时间过程
平均响应时间(Average Response Time):
对于所有响应时间的一个平均值
最大响应时间(Maximum Response Time):
响应时间中的最大值
标准差(Standard Deviation):
响应时间的离散程度,常常用于衡量响应时间之间的稳定性
百分位数(Percentiles):
用于衡量响应的全部完成情况,百分比
·知识面的广度。
接口实例,在我进行接口调试的时候,我发现对于Java传输的参数,前端不能正确解析,但是接口返回的数据是正确的,由于JS是弱类型语言,需要进行类型声明
注意测试资源不足。
测试环境和生产环境的差异
注意人力
注意时间
在软件系统中,性能相关的指标、名称、术语很多
论及性能的本质只有两点:
how fast 多快
how much 多少
时间和空间变换的问题?
也就是需要注意的是,评估一个系统的性能好坏,必须从两个方面入手,不能说只说其一不说其二,且系统的性能好坏,没有绝对的标准,必须以满足需求为主
技术事务
是指在性能测试过程中所涉及到的技术和操作事项,以及被测项目的技术选型
自动化
通过自动化工具和脚本,实现性能测试任务的自动化执行,提高效率和一致性
混沌工程
通过有意制造系统的故障和异常条件,来测试系统的稳定性和可靠性
数据监测
对被测系统进行性能数据收集,对数据集进行分析和监测,密切关注相关性能指标
负载用户: 及向服务器发起请求压力的用户
系统最大用户: 使用系统的最大人数.
用户不一定是真正意义上的人,应该是服务的消费者,使用者.
用户的预估和容量应该是根据系统的业务场景去评定的.
在线用户: 长时间使用系统的人数
有时候是 PV 这样的指标PV(Page View)是指网站或应用程序在一定时间内被用户访问的页面数量。它是衡量网站或应用程序流量和受欢迎程度的重要指标之一。
PV通常用于衡量网站的页面浏览量或应用程序的屏幕浏览量。
每当用户加载或刷新页面,一个PV就会被计算。对于一个网站或应用程序而言,PV数越高,表示被用户访问的频率越高,也意味着更多的用户与内容进行交互。
一般是以监控数据或同行数据为准.
并发用户数:并发分为两种
严格的并发:是指代同时向服务器发起的请求
很多时候,需求要求的并发用户数并不一定准确,并发用户数是通过一个测试来得到的结果
并发用户数= TPS x 平均响应时间
广义上的并发:就是指同时在线
对性能测试来说,进行分类其实是为了清楚的分辨出性能测试的目的
负载测试测试?系统在不同的负载级别下的性能表现,从而确定系统的最大处理能力。最佳的性能表现点和最大的负载用户数
容量测试?测试系统在那特定容量下的性能表现.
容量在系统中和容量有关的,一般有数据库带宽,还有连接数等.
一般是以数据库的容量为准.
基准测试?用于获取系统中基本业务的响应时间.
一般实现为模拟用户进行多次操作取平均值.
用于辅助于其他性能测试的参考指标.
配置测试用于获取系统运行的最低配置,以及良好运行配置.
并发测试为了测试系统中是否存在资源竞争、事务冲突和锁的升级等现象.
一般主要分为同一业务的并发
和不同业务
中的相互并发.
Kubernetes(通常简称为K8s)是一个开源的容器编排和管理平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一种可靠且可扩展的方式,用于管理容器化应用程序的部署、运行和维护。
一般来说,经典的服务器架构是三层架构模型
client : 客户端是主要和用户进行交互的
service: 服务器.应用程序的主要逻辑是在服务器中发布的服务器,既包括服务器软件本身,也包括了服务器中发布的应用程序.
主要涉及到应用逻辑,及隔离数据库与客户端
Database:数据库数据的存储和读取,最重要的部分
按照客户端的不同,我们常见的应用可以分为三类
首先是 b/s 应用,也叫真正的web应用 browser/service
cs 应用 cilent service cilent 一般专职专属客户端需要下载安装
App 移动客户端 App 里面一般会嵌套有 b/s,c/s等等
web服务器面向用户的
监听、接收处理用户请求对于用户请求又分为两种.
静态资源:直接返回静态资源.
动态资源: 经过服务器端提供的接口处理后,返回资源.
对于返回结果,不论是动态还是静态的,都是对用户而言,都是静态.
常见的web服务器产品有:
·apache: lamp架构
·iis:
·tomcat:
·lighttpd:
·nginx:最早是一个反向代理服务器。
是面向 web 服务器的和数据库进行通讯
作用是封装业务逻辑代码,并提供接口供调用者使用
与数据库进行交互
典型的应用服务器:
?·weblogic
·websphere
·IIS
·JBOSS/tomcat
·金蝶/用友
数据库全名叫数据库管理系统(DBMS)
·层次模型数据库
·网状模型数据库
·关系模型数据库(RDBMS)
ACID特性
常见的RDBMS数据库有:
·oracle
·mysql
·postgreSQL
·MS SQL
·DB2
·MongoDB
·noSQL:not only SQL。非关系型数据库。
SQL是指结构化查询语言,是RDBMS的官方操作语言。
它通过故障隔离、降级处理、缓存、错误处理和限流等技术手段,保护系统的稳定性和可用性。挡板处理是构建可靠系统的基本保障
根据数据量级 建立一元二次方程
50w, 100w, 200w
数据量 = X (数据量)* Y(环境)
评估
正态分布 与 正态校验
这些检验方法会计算统计指标,并与预定义的置信水平进行比较,以确定数据是否显著偏离正态分布。
对于收集到的数据进行数学方法处理,在面对大量数据的时候,可以构造正态分布以及进行静态校验,检测数据是否符合业务逻辑预期?
集群主要是负载均衡,提升服务器的整体处理能力集群的负载能力是增加集群边际递减的
基本策略有三种
考虑负载均衡准确落在集群上
主从数据库(Master-Slave Replication):
主从数据库是一种数据库复制架构,其中一个数据库服务器(主服务器)负责处理写操作(插入、更新、删除),而其他一个或多个数据库服务器(从服务器)复制主服务器的数据并用于读操作。主从复制的过程中,主服务器将写操作的日志(二进制日志)传输给从服务器,从服务器根据日志内容对自己的数据进行更新,以保持与主服务器的数据一致性。
主从数据库的优点包括:
主主数据库(Master-Master Replication):
主主数据库是一种数据库复制架构,其中两个或多个数据库服务器都可以执行读写操作。每个服务器既可以作为主服务器接收写操作,又可以作为从服务器复制其他主服务器的数据。主主数据库复制需要确保冲突数据的解决,以避免数据不一致。
主主数据库的优点包括:
在主主数据库中,由于多个主服务器之间进行写操作,可能会导致数据冲突和一致性问题。解决数据冲突需要采用一些策略和机制,例如应用程序层面的锁机制、分区键、时间戳等。
·SaaS:软件即服务(腾讯文档,百度网盘)
·IaaS:基础设施即服务(阿里云)
·Paas:平台即服务(云桌面云电脑)
?哈,谢谢各位同志的阅读,然后呢如果觉得本文对您有所帮助的话,还给个免费的赞捏
Thanks?(・ω・)ノ