架构师训练营 W7 学习总结

用户头像
Kun
关注
发布于: 2020 年 07 月 22 日
架构师训练营 W7 学习总结

性能测试



性能测试是性能优化的前提和基础。



性能测试指标



网站性能测试的主要指标:

  • 响应时间

从应用程序发出请求开始到最后响应数据所需要的时间。

  • 并发数

系统能够同时处理请求的数目。直接反应系统的负载。

  • 吞吐量

单位时间内系统处理的请求的数量,反映了系统的处理能力。通常可以用 TPS,QPS 来衡量。

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

  • 性能计数器



描述服务器或者 OS 性能的一些数据指标。包括:

- system load

- 对象与线程数

- CPU

- disk

- network



性能测试方法



是一个总称。可以分为:

  • 性能测试

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

  • 负载测试

对系统不断增加并发请求以增加系统压力,直到系统的某一项或某几项资源的临界值。这个时候继续增加压力,系统的处理能力不但不能提高,反而下降。

  • 压力测试



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

  • 稳定性测试

被测试的系统在特定的硬件, 软件,网络环境条件下, 给系统一定业务压力,使系统运行一段较长的时间,以此检测系统是否稳定。生产环境中,请求的压力是不均匀的,稳定性测试也应该是不均匀的。





一开始并发数处于系统设计的最佳运行区间,响应时间 (RT) 随并发数增加无明显变化,系统吞吐量几乎线性增加。



当并发数继续增加,系统的某一项或某几项资源使用率达到极限,RT 明显变长,系统吞吐量以达到极限,已有部分用户出现等待的情况。



当并发数来到危险区,系统资源被耗尽,RT 指数级增加,吞吐量极速下降,系统濒临崩溃。



性能优化的原则

  • 你不能优化一个没有测试的系统

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



性能优化的分层思想



  • 机房与骨干网络性能



异地多活的多机房架构

专线网络与自主 CDN 建设



  • 服务器及硬件性能

使用更优的 CPU, Disk, Memory, 网卡



  • OS

  • VM

  • 基础组件

  • 软件架构

三板斧:

1. 缓存

2. 异步

3. 集群



  • 软件代码



程序与进程

程序是静态的,程序运行起来被称作进程。



进程的运行期状态



  • 运行

进程在 CPU 上运行



  • 就绪



进程获得了除了 CPU 以外的一切所需的资源,只要得到 CPU 即可运行



  • 阻塞



进程正在等待某一事件发生而暂时停止运行,即使把 CPU 分配给进程也无法运行



进程 VS 线程



进程从 OS 获得基本的内存空间,所有的线程共享进程的内存地址,每个线程也会拥有自己的私有的内存地址范围,其他线程不能访问





线程安全



当某些代码修改内存堆(进程共享内存)里的数据的时候,如果多个线程同时执行,可能出现同时修改数据的情况。



阻塞导致高并发系统崩溃



锁(IO)会引起线程阻塞,导致线程既不能继续进行,也不能释放资源。进而导致资源耗尽,最终系统奔溃。





如何避免阻塞

  • 限流

控制进入计算机的请求数,减少创建的线程数

  • 降级



关闭部分功能,尽早释放线程



  • 异步IO;无临界区(Actor 模型)



文件控制块



文件系统将硬盘空间以块为单位进行划分,每个文件占据若干个块,然后通过一个文件控制块 FCB 来记录每个文件占据的硬盘数据块。



发布于: 2020 年 07 月 22 日 阅读数: 3
用户头像

Kun

关注

Life is short. 2018.01.13 加入

Software Developer

评论

发布
暂无评论
架构师训练营 W7 学习总结