架构师训练营第七周学习总结

用户头像
0x12FD16B
关注
发布于: 2020 年 07 月 22 日

第七周的两次课程中, 主要学习的内容是: 性能测试, 操作系统和文件系统知识

性能测试

  • 性能指标

响应时间:发出请求到收到响应的间隔时间

并发数:系统能够同时处理请求的数目

吞吐量: TPS(每秒事务数)、HPS(每秒HTTP请求数)、QPS(每秒查询数)

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

性能计数器:描述服务器或操作系统性能的一些数据指标。包括System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/O等指标。对这些指标设置报警阀值,当监控系统发现性能计数器超过阀值的时候,就向运维和开发人员报警,及时发现处理系统异常

性能测试方法:

包括性能测试、负载测试、压力测试、稳定性测试等

性能测试:以系统规划的性能指标为预期目标进行测试,验证系统在资源可接受范围内,是否能达到性能预期。

负载测试:增加压力,直到系统的某项或多项性能指标达到安全临界值。

压力测试:超过安全负载后继续加压,直到系统崩溃,检测系统最大压力承受能力。

稳定性测试:模拟生产环境测试系统,在特定硬件、软件、网络环境条件下,对系统进行一段较长时间压力测试

  • 系统测试

系统优化的前提和基础是性能测试。优化的视角有

  1. 主观视角:用户感受到的性能,

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

衡量系统的主要指标

响应时间:发出请求到收到响应的间隔时间

并发数:系统能够同时处理请求的数目

吞吐量: TPS(每秒事务数)、HPS(每秒HTTP请求数)、QPS(每秒查询数)

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

性能计数器:描述服务器或操作系统性能的一些数据指标。包括System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/O等指标。对这些指标设置报警阀值,当监控系统发现性能计数器超过阀值的时候,就向运维和开发人员报警,及时发现处理系统异常

性能测试方法

性能测试的方法有性能测试、负载测试、压力测试、稳定性测试等

性能测试:以系统规划的性能指标为预期目标进行测试,验证系统在资源可接受范围内,是否能达到性能预期。

负载测试:增加压力,直到系统的某项或多项性能指标达到安全临界值。

压力测试:超过安全负载后继续加压,直到系统崩溃,检测系统最大压力承受能力。

稳定性测试:模拟生产环境测试系统,在特定硬件、软件、网络环境条件下,对系统进行一段较长时间压力测试

系统优化

优化的两个原则

  1. 不能优化一个没有测试的软件

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

系统优化的一般方法

  1. 性能测试,获得性能指标

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

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

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

  5. 性能测试,进入性能优化闭环

系统性能优化的分层思想

  1. 机房与骨干网络性能优化

  2. 服务器与硬件性能优化: CPU、磁盘、内存、网卡。例如:瓶颈在网络带宽时,换高速网卡

  3. 操作系统性能优化

  4. 虚拟机性能优化

  5. 基础组件性能优化

  6. 软件架构性能优化, 软件架构性能优化三板斧: 缓存、异步、集群

  7. 软件代码性能优化

操作系统

主要需要理解运行在操作系统中的代码的形式是进程, 代码是 "死" 的, 进程是 "活" 的, 操作系统通过分时技术多进程运行, 一个进程中可以运行多个线程, 线程由 CPU 调度。

避免阻塞:限流、降级、异步I/O、无临界区(Actor模型)

CPU 如何保证高速缓存一致: 总线锁与缓存一致性协议

总结

关于操作系统和文件系统的知识很重要, 是理解很多技术的关键, 需要加强学习。性能优化的手段需要加强在生产中实践。

用户头像

0x12FD16B

关注

还未添加个人签名 2018.01.19 加入

还未添加个人简介

评论

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