资讯详情

性能知识点总结

一、性能测试基础上

1.性能测试的四个应用领域 能力验证:通过测试向交付方证明系统的能力; 瓶颈分析:在验证能力的过程中,发现系统的性能问题,分析和定位问题 性能调优:优化发现的问题,达到所能力 容量规划:测试未来业务量可能急剧增加的场景,提前规划

2.如何调查性能测试的要求? 熟悉项目业务流程,明确硬件配置信息,线程处理,并发用户数量,明确期望指标

3.常见的性能测试场景有哪些? 基准测试:压力测量基准值,与后期调整进行比较 并发测试:模拟大量用户,同时发起请求 负载试验:不断施加压力,找到性能瓶颈 稳定性测试:选择瓶颈点压力的80%进行稳定性压力测试,连续运行一段时间,检查系统内存是否溢出

4.性能测试准入需要检查哪些内容? 配置检查:服务器、中间件、数据库等配置信息 资源检查:资源是否满足性能测试 版本检查:正式环境和测试环境服务器、中间件、数据库等版本是否一致

二、性能测试基础下

1.常见的应用层性能指标是什么? VU:并发用户数 RPS:每秒请求数 TPS:throughput:每秒完成响应的请求数 HPS:hit persecond 浏览器层面的每秒请求数 QPS:query persecond 每秒发送请求到服务器的查询次数 RT:response time 响应时间 error:错误率

2、TPS和RPS有什么关系? RPS是性能入口,tps是性能出口,rps是要求的能力指标,tps是处理请求能力的指标。 通过不断的调整RPS测试最大的TPS;瓶颈前,RPS增加,TPS也会增加;瓶颈之后,RPS增加,TPS不变甚至下降 3、常见的性能测试类型有哪些? 并发试验、负载试验、压力试验 4、怎么判断TPS拐点? 当RPS当继续增加时,TPS不变甚至下降,响应时间变长,即tps拐点

三、环境部署上

1、ubuntu安装速度慢怎么办?

改为国内镜像源 2、ubuntu修改静态ip 第一步、先获取网卡名称,输入ifconfig 第二步:修改网卡配置文件sudo vim /etc/network/interfaces 第三步:修改DNS配置 第四部分:重启网络服务: 3.如有必要xshell连接服务器需要安装什么?

需要提前安装ssh,打开端口为22的防火墙 4、ubuntu怎么配置jdk环境变量? 第一步:vim/etc/profile 第二步:export JAVA_HOME=/home/zhufc/jdk1.8.0_241export CLASSPATH=..${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 第三步:source/etc/profile 5、tomcat哪个目录配置了线程池?

在tomcat在安装目录下conf目录下的server.xml文件目录配置 6、tomcat的jvm配置哪个目录?

在tomcat 的bin 下catalina.sh目录配置

四、环境部署下

1、简述一下docker的三层概念 1)镜像 image: 是环境运行模板,镜像可以实例运行系统 2)容器 Container: 镜像的实例化,每个容器都是极简主义的linux系统,每个容器都被隔离,但保留一个交互窗口(映射端口), 外部服务通过映射端口访问容器。只要内存足够,一个镜像理论上可以实例化n多容器,容器可以重新包装成新的镜像 3)仓库 Repository: 存放镜像的空间,可以将镜像下载到本地,上传到远程仓库

ps:仓库-镜像-容器 仓库下载镜像-镜像生成容器-容器包装成镜像-镜像上传到仓库 容器是隔离的linux系统 镜像可以生成无数的容器 容器相互隔离,端口相互连接 2、ubuntu怎么安装docker? apt-get install docker.io 3、docker如何拉取镜像文件? docker pull ${镜像地址}{镜像地址} 4.镜像文件如何实例化容器? docker run -d -p {映射端口} 镜像名称:tag标签

例:docker run -d -p 4406:3306 registry.cn-hangzhou.aliyuncs.com/zhufc/mysql:v2 5.如何进入容器进行应用部署? 1.docker ps 检查已启动的容器 2.docker exec -it {CONTAINER ID} bash 进入容器 容器映射端口的作用是什么? 隐藏内部网络地址,降低安全风险,无需暴露公网内部真实地址。 可通过转换防止某些特定端口被占用,便于记忆 7、docker如何查看日志? docker logs -f -t --tail 100 {容器名称} -f : 跟踪日志输出 -t : 显示时间戳 --tail :最新N个容器日志只列出

8.根据下面的镜像部署一个tomcat应用容器 docker pull registry.cn-hangzhou.aliyuncs.com/zhufc/xiaoyaoji:web

docker run -d -p 8081:8080registry.cn-hangzhou.aliyuncs.com/zhufc/xiaoyaoji:web 映射端口号8081

docker pull registry.cn-hangzhou.aliyuncs.com/zhufc/mysql5:v1

docker run -d -p 4406:3306registry.cn-hangzhou.aliyuncs.com/zhufc/mysql5:v18081 tomcat与mysql关联:

1、进入tomcat

2、切换到/usr/local/tomcat/apache-tomcat-7.0.78/webapps/api/WEB-INF/classes

3、编辑config.properties文件---vimconfig.properties

4、修改jdbc.url

5、修改jdbc.username

6、修改jdbc.password

7.保存后重启tomcat ----docker restart ${CONTAINER ID}

五 、基本脚本设计

1:jmeter如何保持长连接? a)、Http请求 勾选 “Use KeepAlive”复选框 b)、还需要在Advanceed选择高级选项面板HttpClient4类型的HttpRequest请求实现。 c)、配置JMeter.properties在空闲时间等待时间中,默认设置为0。默认情况下,长连接不会空闲等待。一旦连接到空闲时间,它将立即断开,这也是导致压力测试失败的情况。因此,有必要修改空闲等待时间。此时,建议尽量与后端服务器的空闲等待时间保持一致。 具体修改方法如下:jmeter.property文件,找到 httpclient4.idletimeout 空闲等待时间选项,适当修改。因为前面用了60个s,所以在这里修改 60000ms,也就是60s。 2:jmeter如何配置堆内存? 通过 jmeter.bat 中 set HEAP=-Xms512m -Xmx512m 配置Xms是最小堆内存,Xmx它是最大的内存;最小和最大值可以设置为相同的值,以避免频繁的内存切换 3:Windows的TCP如何配置内核? 打开注册表 win r regedit 目录计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 配置参数 TCPWindowSize滑动窗 TcpTimedWaitDelay【tcp延迟时间】 MaxUserPort【tcp端口范围】 KeepAliveTime【长连接时间】 TcpMaxDataRetransmissions重传次数 4:ramp up它的作用是什么? 决定启动所有线程需要多长时间。若使用10个线程,ramp-up period是100秒,那么JMeter启动和运行所有10个线程需要100秒。每个线程将在上一个线程启动后10秒(100/10)启动。Ramp-up需要足够长的时间来避免启动测试时工作负荷过大,最后一个线程应该在第一个完成之前启动。 一般设置ramp-up=启动线程数,上下调整到所需。 用于通知JMeter 建立所有线程需要多长时间。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 所有线程都将立即建立。假设ramp-up period 设置成T 秒, 将所有线程数设置为N, JMeter 将每隔T/N秒建立线程。 【3】Ramp-Up Period(in-seconds)代表执行多久,0代表同时并发 5:delay的作用是什么? 延迟创建线程,直到线程开始采样,即任何线程组的延迟和加速时间都是线程本身。这可以支持更多的线程,但不会同时处于活动状态。

延迟线程资源的分配,待线程启动后分配内存空间,防止线程启动过多而卡住 6:jmeter如何配置连接超时? HTTP 请求页面—Advanced — “ Timeouts(milliseconds) Connect:设置链接超时时间Reponse(服务端响应时间) TCP取样器 — “ Timeouts(milliseconds) Connect”:设置链接超时时间

六、基准性能测试

1,为什么要做基准测试? 为性能测试建立一个基线标准,为后续的调优做对比。常用的评估指标有响应时间,TPS,CPU利用率等。 2,压力模型有哪几种?   1)用户模型,最大支撑每秒多少用户同时施压,

   2)RPS模型,最大支撑每秒多少次查询 3,性能测试结果怎么对比?

对比预期的响应时间、TPS 4,jmeter 怎么监听服务器性能数据? 网络TCP可以通过wireshark 监 听 中间件和数据库通过spotlight CPU,内存IO通过spotligth ,agent jvm 施压机的jvm ,负载机的jvm服务器配置

5、描述一下数据包在系统架构中的流向

1.发起请求--》TCP连接--》nginx分发--》tomcat--》缓存服务器--》数据库

七、混合性能场景

一、什么是负载测试? 使用阶梯增压,不断向后端增加服务器的压力,一直到tps出现瓶颈 二、从两个维度设计jmeter负载场景 1.系统最大支撑多少用户同时处理 2.根据系统的吞吐量和业务比例来设计 三、stepping和currency线程组的核心区别在哪里? stepping线程组是瞬间全部分配好线程所需要的资源 currency线程组是逐步分配好线程所需要的资源 四、TPS的衰减点如何判断? 负载持续升高的情况下,单线程的tps 保持稳定或者下降 五、混合业务场景下的TPS含义是什么? 是多个业务线同步处理(多接口的压测,不需要加集合点),其实这个叫并行,此时TPS叫做每秒完成的事物数; 六、假设需要在5分钟内完成30000笔业务,单笔业务时间是10s,那么平均有多少笔业务同步处理才能达标? 计算公式:平均并发=(业务总量*单笔时间)/总时间 (30000*10)/(5*60)=1000,需要1000笔业务同步处理

八、消息队列性能测试

一、MQ指的是什么? 1.MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递——生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由MQ服务端给其推送消息 二、描述一下消息发布的几个组件 1.生产者(发布消息) 2.消息协议(TCP/AMQP/MQTT) 3.消息中间件(存储消息)

4.消费者

5.发布者基于消息协议发布消息,存储到消息中间件里,消费着去订阅消息 三、简述消息发布的几种模式 1.dynamicTopics/topic(主题模式) 2.dynamicQueues/topic1(点对点模式) 四、什么是消息持久化?做持久化有什么性能影响? 1.持久化的主要机制就是将信息写入磁盘,当MQ服务宕机重启后,从磁盘中读取存入的持久化信息,恢复数据 。 2.做持久化对性能有争用的影响 五、消息发布性能测试有哪些测试场景?

1.业务解耦 2.异步消息 3.流量削峰

九、分布式压测

一、分布式压测的工作原理是什么? jmeter分布式压测时,选择其中一台作为控制机,其余的机器做为负载机 执行时,控制机会把脚本发送到每个负载机上,负载机获取到脚本就执行脚本(负载机只需要启动jmeter-server.bat或者jmeter-server)。 执行后,负载机回传执行结果给控制机,控制机会进行汇总 二、分布式压测有哪些注意事项? 1.主机和从机的jmeter版本一致 2.主机和从机的jar包要一致 3.主机和从机的jdk版本一致 4.主机和从机的参数文件要一致 5.主从机参数路径格式一致 6.主从机的活动线程要区分开 7.多台分布式机器时间要同步 8.分布式结果 9.防火墙要关闭 三、分布式压测的数据回写方式有哪些?对性能有什么影响? 1.Stripped 将成功的采样信息从响应数据中删除 2.Standard 采样信息全部回传给主机 3.Batch 采样信息超过指定的阈值后再同步回传给主机 总量阈值(num_sample_threshold)默认 100 时间阈值(time_threshold)默认 60000s 4.Asynch 响应信息在本地队列临时存储。用独立的线程发送采样信息 队列太长也会导致测试线程阻塞 asynch.batch.queue.size 设置队列 5.DiskStore 测试结束前将响应信息存储在磁盘(在进程关闭后删除) 6.Hold 测试结束前将采样信息保存在内存 7.Statistical 采样信息超过指定阈值后只发送摘要信息 8.StrippedBatch 删除采样信息后,使用 Batch 模式 9.StrippedDiskStore 删除响应信息之后使用 DiskStore 的方式处理 10.StrippedAsynch 删除采样信息后,使用 Asynch 模式

十、性能分析步骤

一、简单描述一下数据包在项目架构中的流向 客户端发出数据包--TCP三次握手--Nginx转发--tomcat--mysql数据库 二、项目的应用类型有哪两种?描述一下差异 1、cpu密集型 2、IO密集型 CPU 密集型也可以称之为算法密集型,系统大多数时候是 CPU 负载和利用率占比很高,磁盘 I/O 处理的很快;IO 密集型指的是系统大部分的时候在做 I/O (硬盘和内存的读/写),此时 CPU 利用率和负载都不高; Cpu 密集型和 IO 密集型是互斥的。 三、你的性能问题排查思路是什么? 压力机资源够不够? 响应时间消耗在连接层还是服务层? TCP 连接是多少,有没有重传和丢包,队列有没有溢出,缓冲区有没有溢出 Tomcat 连接池有多大?连接有没有泄露? Nginx 日志有没有异常? Cpu 的利用率高不高,user 高还是 sys 高?切换和中断高不高? 内存有没有泄露?swap 开始交换了吗? IO 队列长不长?IOwait 有多少?IO 尺寸是多大? 带宽利用率是多少?网络吞吐量是多大? 占用 cpu 最高的线程是哪个?有没有阻塞和死锁? Jvm 内存分配合理吗?fullgc 是否频繁? 数据库的缓存命中率是多少?连接是多少?有索引吗?

十一、中间件性能分析

一、简述Tomcat的工作原理 TCP 在三次握手成功之后,客户端和服务端都是 Established 状态,此时服务端 维持了一个 accept 全连接队列。 Tomcat 的 acceptor 线程负责从 accept 队列中将连接取出,然后交给 worker 线程 处理(读取参数,处理逻辑,返回响应)。之后 Tomcat 判断该连接是否为 keep alived 长连接,如果不是长连接则关闭立刻关闭然后释放 worker 线程;如果是 keep alived 长连接则继续维持连接,等待下一个数据包直到 keep alived 超时再释放 worker 线程。 当 TCP 连接数超出 Tomcat 的 maxConnections,连接会由 acceptor 队列自持。如 果 acceptor 队列也满了,accept 线程就会持续处于阻塞状态,直到 TCP 连接数低于 maxConnections 时再继续工作。在 accept 线程阻塞的过程中,连接事实上是完全中 断的。如果阻塞的时间超出了 Tomcat 的 connectionTimeout,就会返回连接超时 二、简述tomcat中最大连接数和acceptcount的联系 TCP 连接超出 maxConnection 之后进入 accept。如果 accept 满了,线程会持续阻塞,直到 TCP 连接数低于maxConnections 时再继续工作。在 accept 线程阻塞的过程中,连接事实上是完全中断的 三、tomcat,nginx,mysql,nginx的性能分析有什么共通性? 这些中间件都有最大连接数和backlog(缓冲池),如果连接阻塞了,出现大范围的连接超时,先去检查全连接队列,再去检查最大连接数,最后检查backlog 四、如果返回connection timeout,需要从哪些方向去分析问题? 1、客户端设置的超时时间 2、TCP第二次握手失败 3、TCP 连接超出tomcat的 maxConnection

十二、Nginx性能分析

一、Nginx有哪几种负载均衡策略 Nginx 负载均衡通过 upstream 模块来实现 1.轮循 在这种策略下,Nginx 会按照时间顺序将请求转发到不同的服务器上,如果某一台机器 down 掉了,会自动从负载策略中剔除,下次不再轮询 2.权重 Nginx 会根据 weight 权重值来转发请求到服务器。权重越高的,转发越多。 3.iphash 在这种策略下,Nginx 会根据用户第一次请求时的 ip 计算出一个 hash 值。然后将请求分配到某一台服务器上,后续该用户所有的请求都会根据 hash 算法分发到最初处理的这台服务器。也就是说每个用户的请求都会被固定到某一 台机器去处理。iphash 可以和 weight 同用 4.最少连接 在这种策略下,Nginx 会计算每台服务器的连接,然后将请求转发给连接数最少的那台机器 二、worker_rlimit_nofile受限于linux的哪个参数? worker_rlimit_nofile 受限于 linux 的 open files 和 file_max。 三、tcp_nopush和tcp_nodelay有什么区别? tcp_nopush on:开启此参数,数据包会在积累到一定数量再发送出去 tcp_nodelay on:开启此参数,所有的包都立即发送。 nopush 和_nodelay互斥 四、什么是nginx惊群现象?对性能有什么影响?怎么规避? 所有的 Worker 都会被唤醒,仍然只有一个Worker 能获取新连接,其它的 Worker 会重新进入休眠状态这就 是“惊群” 上下文切换增多或者负载上升 accept_mutex on设置网络连接序列化,防止惊群现象发生,多个 Worker 将以串行方式来处理,但是只有一个 Worker 会被唤醒,其他的 Worker 继续保持休眠 状态;

标签: t323a压力变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台