架构师训练营第七周总结
第七周主要讲系统测试和性能优化。也讲解了操作系统、文件等相关知识,以及异步并发分布式编程框架akka。
系统测试与系统优化
系统优化的前提和基础是性能测试。
优化的视角有:
主观视角:用户感受到的性能
客观视角:性能指标衡量的性能
主要指标:
响应时间:发出请求到收到响应的间隔时间
并发数:系统能够同时处理请求的数目
吞吐量: TPS(每秒事务数)、HPS(每秒HTTP请求数)、QPS(每秒查询数)
吞吐量 = (1000/响应时间ms)*并发数
性能计数器:描述服务器或操作系统性能的一些数据指标。包括System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/O等指标。对这些指标设置报警阀值,当监控系统发现性能计数器超过阀值的时候,就向运维和开发人员报警,及时发现处理系统异常
性能测试方法:
包括性能测试、负载测试、压力测试、稳定性测试等
性能测试:以系统规划的性能指标为预期目标进行测试,验证系统在资源可接受范围内,是否能达到性能预期。
负载测试:增加压力,直到系统的某项或多项性能指标达到安全临界值。
压力测试:超过安全负载后继续加压,直到系统崩溃,检测系统最大压力承受能力。
稳定性测试:模拟生产环境测试系统,在特定硬件、软件、网络环境条件下,对系统进行一段较长时间压力测试
全链路压测
在特定业务场景下,将相关的链路完整地串联起来同时施压,尽可能模拟出真实用户行为。
数据构造:
数据隔离:
流量构造
系统优化
软件性能优化的两个基本原则
1.你不能优化一个没有测试的软件
2.你不能优化一个你不了解的软件
性能优化的一般方法
性能测试,获得性能指标
指标分析,发现性能与资源瓶颈点
架构与代码分析,寻找性能与资源瓶颈关键所在
架构与代码优化,优化关键技术点,平衡资源利用
性能测试,进入性能优化闭环
系统性能优化的分层思想
机房与骨干网络性能优化
异地多活的多机房架构
专线网络与自主CDN建设
服务器与硬件性能优化
CPU、磁盘、内存、网卡
例如:瓶颈在网络带宽时,换高速网卡
操作系统性能优化
虚拟机性能优化
基础组件性能优化
软件架构性能优化
软件架构性能优化三板斧
缓存、异步、集群
软件代码性能优化
操作系统
进程
线程
线程管理:
线程安全
阻塞:避免阻塞:限流、降级、异步I/O、无临界区(Actor模型)
锁:
偏向锁
轻量级锁
重量级锁
多CPU情况下的锁
总线锁与缓存锁
公平锁与非公平锁
可重入锁
独享锁/互斥锁、共享锁、读写锁
乐观锁、悲观锁
分段锁
自旋锁
文件与I/O磁盘
异步并发分布式编程框架akka
版权声明: 本文为 InfoQ 作者【王鑫龙】的原创文章。
原文链接:【http://xie.infoq.cn/article/49ad01200cf203d513493003e】。
本文遵守【CC BY-NC】协议,转载请保留原文出处及本版权声明。
评论