WORK7- 性能测试和调优学习心得

用户头像
蒜泥精英
关注
发布于: 2020 年 07 月 22 日
WORK7-性能测试和调优学习心得

性能优化有主观和客观

主观视角:用户感受的性能

客观视角:性能指标衡量的性能



先做主观层面的优化,让用户快速感受到。

然后开始性能指标的优化



响应时间:从开始发起请求,到最后响应数据所需要的时间;

直观的反映了系统的快慢



并发数:系统能够同时处理请求的数目 ,这个数字也反映了系统的负载特性;



吞吐量:单位时间内系统处理的请求的数量,体现系统的处理能力;

请求数/秒 或 页面数/秒; 也可用 访问人数天;处理业务数/小时

TPS 、 HPS 、 QPS



响应时间短、并非高,那么吞吐能力就高了

吞吐量=(1000/响应时间ms)* 并发数

(1个并发的情况下,1秒(1000ms),可以处理多少个请求,然后乘以并发)

性能计数器



System load 的理想不超过 CPU的核数;



性能测试:

以系统设计初规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能够达到性能预期。



负载测试:

对系统不断的增加并发,以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,如果某种资源饱和状态,这时候继续对系统施加压力,系统的处理能力不但不能提高,反而会下降。



压力测试:

超过安全负载的情况下,对系统继续施加压力,直到系统奔溃。



性能测试:

需要把这个曲线压出来。



主要是选择的依据;

【测试的字段】并发数、响应时间、TPS、错误率、LOAD、内存、备注



网关后面两个服务器

服务器1挂了把网关的线程吃完,导致正常的服务器2也不能用了。



软件性能优化的两个基本原则:

  • 你不能优化一个没有测试的软件

  • 你不能优化一个你不了解的软件



性能测试的主要指标

响应时间:

并发数:

吞吐量:

性能计数器:



性能优化的一般方法:

  • 性能测试,获得性能指标

  • 指标分析,发现性能与资源瓶颈点

  • 架构与代码分析,寻找性能与资源瓶颈关键所在

  • 架构与代码优化,优化关键技术点,平衡资源利用

  • 性能测试,进入性能优化闭环



系统性能优化的分层思想:

  • 机房与骨干网络性能优化

  • 服务器与硬件性能优化

  • 操作系统性能优化;

  • 虚拟机的性能优化

  • 基础组件性能优化

  • 软件架构性能优化

  • 软件代码性能优化



机房与骨干网络性能优化

  • 异地多活的多机房架构

中国到美国300ms,目前的互联网公司都是异地多活的多机房架构;

专线网络与自主CDN建设;

  • 服务器与硬件性能优化

硬盘更换

  • 操作系统性能优化案例

线程数不够,所以CPU没跑满

系统参数调优;

  • 虚拟机性能优化

垃圾回收

  • 基础组件的性能优化

中间件版本升级

  • 软件架构性能优化的三板斧

缓存

异步

分布式集群

集群:集群技术的目标只有一个,如何使很多服务器对使用者而言看起来像一台服务器。



软件代码的性能优化:

并发编程,多线程与锁

资源复用,线程池与对象池

异步编程,生产者消费者

数据结构,数组、链表等。



代码优化案例:

spark 作业LOG ,

优化spark 的代码;

启用本地文件缓存模式;



【总结】

1、性能优化是多个层次的,有底层物理层、网络层、中间件层,也有软件架构、代码层,所以,我们解决性能问题要扩展思维;

2、性能优化需要结合业务场景开展,同时业务场景的调整也可能会对性能带来改变;

3、对互联网以及常见的业务场景下的并发、性能指标需要有个概念,才能指导架构的设计以及代码的开发、压测的对标。



用户头像

蒜泥精英

关注

还未添加个人签名 2018.09.19 加入

还未添加个人简介

评论

发布
暂无评论
WORK7-性能测试和调优学习心得