架构师训练营 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 来记录每个文件占据的硬盘数据块。
版权声明: 本文为 InfoQ 作者【Kun】的原创文章。
原文链接:【http://xie.infoq.cn/article/9f80cc3abf2b443dd11ceb47c】。未经作者许可,禁止转载。
评论