目录
前言:关于性能的几点说明
第一章 性能需求:提出各种性能指标
1.1 可靠性或可用性: stablity
1.2 处理能力或效率: Performance
1.2.1 指标是吞吐率
1.2.2 指标是响应时间:
1.2.3 指标是资源利用率
1.3 高并发性
1.4 通信系统性能指标
1.4.1 信道传输速率
1.4.2 信道吞吐量:throughput
1.4.3 容量:Capacity
1.4.4 信道利用率
1.4.5 传输延迟
1.4.6 响应时间
1.4.7 负载能力(load)
第二章 性能分析:分析和细化影响性能需求的各种因素
第三章 系统设计:为高性能设计好系统架构
第四章 系统实现
第五章 系统测试:性能测试与评估
5.1 Linux系统性能评估的工具
前言:关于性能的几点说明
(1)性能需要是非功能性需求
(2)不同的信息系统比的是功能
(3)同行的信息系统比的是性能
(4)产品后期打磨的就是性能(性能提示曲线)
一开始性能提升容易,越往后,性能提升越难。
(5)性能的改进因素分布在系统的方面面面(性能分析框架)
(6)信息系统的性能从需求阶段就开始了,而不是在编码实现阶段才开始。
- 客户需求:性能需求,提出各种性能指标
- 系统分析:性能分析(最难),分析和细化影响性能需求的各种因素
- 系统设计:为高性能设计好系统 架构
- 系统实现:通过芯片设计、编程语言和代码编程来实现高性能信息系统。
- 系统测试:性能测试与评估
很多人在开发信息系统时,早期只关系功能,到了开发的后期才关心性能,导致花了大量人力、物力开发的系统,
- 要么因为性能无法满足客户的需求,导致一直无法交付
- 要么陷在现有框架下艰难的进行性能的改进和优化,项目交付一再推迟。
- 要么导致推翻以前的软硬件架构,重新设计,造成前期大量的人力、物力、时间的浪费。
本文重点重点关注前期的性能需求和性能分析!!!
(7)性能目标的本质:多、快、好、省、低
数量多,速度快,质量好,成本省、功耗低
第一章 性能需求:提出各种性能指标
- 不同的业务系统,对性能指标的要求是不同的!!!!
- 不同的业务系统,对性能指标的优先级是不同的!!!
- 不同的性能指标之间是相互制约的!!!会导致后续一些列设计上的变化!!!
这就是为什么需求阶段需要明确业务系统的性能指标!!!
计算机系统的性能一般包括三的方面。
1.1 可靠性或可用性: stablity
一个方面是它的可靠性或可用性,也就是计算机系统能正常工作的时间,其指标可以是能够持续工作的时间长度(例如,平均无故障时间),也可以是在一段时间内,能正常工作的时间所占的百分比;
1.2 处理能力或效率: Performance
另一个方面是它的处理能力或效率,这又可分为三类指标:
1.2.1 指标是吞吐率
系统在单位时间内能处理正常作业的个数
1.2.2 指标是响应时间:
从系统得到输入到给出输出之间的时间
1.2.3 指标是资源利用率
即在给定的时间区间中,各种部件(包括硬设备和软件系统)被使用的时间与整个时间之比。
1.3 高并发性
通常是指通过设计保证系统能够同时并行处理很多请求的数量。
高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。
1.4 通信系统性能指标
不同的系统对性能指标的描述有所不同,例如,计算机网络系统常用的性能评估指标为:
1.4.1 信道传输速率
传输速率是泛指数据从一点向另一点传输的速率。如从网络节点向打印服务器传输打印数据的速率,Modem对数据传输的速率,信道传输数据的速率等。传输速率的单位有bts,波特等。
1.4.2 信道吞吐量:throughput
网络吞吐量,信息技术术语,网络中的数据是由一个个数据包组成,防火墙对每个数据包的处理要耗费资源。吞吐量是指在没有帧丢失的情况下,设备能够接受的最大速率。其测试方法是:在测试中以一定速率发送一定数量的帧,并计算待测设备传输的帧,如果发送的帧与接收的帧数量相等,那么就将发送速率提高并重新测试;如果接收帧少于发送帧则降低发送速率重新测试,直至得出最终结果。吞吐量测试结果以比特/秒或字节/秒表示。
1.4.3 容量:Capacity
容量也指物体或者空间所能够容纳的单位物体的数量。
现广泛应用于计算机硬盘、电池等储量的计量。
通信容量-单位时间内能够传输的最大信息量。
1.4.4 信道利用率
用于描述有效信息传递过程中信息占用信道的百分率,也是信道的效率。
1.4.5 传输延迟
传输延迟,发送接收处理时间、电信号响应时间、介质中传输时间三个时间的总和。
1.4.6 响应时间
系统响应时间,是计算机对用户的输入或请求作出反应的时间 [1] 。
系统响应时间的计算要考虑到用户的数目,用户数目越多,响应时间必须越快,不然就难以保证每一个用户都有可以接受的响应时间。
响应时间和时间片的大小有关,一般情况是:时间片越短,响应时间越快。
1.4.7 负载能力(load)
在给定持续运行时长下,设备可承受的最大负载,或在给定负载下,设备可持续运行的最大时长。
带负载能力就是代表器件的输出电流的大小。对于标准TTL器件,输出负载能力的高电平为0.4mA,而作为下级负载的TTL器件的输入高电平电流为0.04mA(40uA),这样一个标准TTL器件最大可以驱动8个以上标准TTL负载。
所谓带负载能力,是说电路的输出电阻的大小,和电压源(电流源)中的内阻是一个意思。
对于CPU: 负载就是指CPU的占用率的可执行任务,比80%的负载,100%负载。
对于5G系统:负载就是就是用户数量或throughput的数据,比如最大64个用户,实际用户的数量就是负载,再如,最大传输速率是1G, 900M数据传输就是负载。
第二章 性能分析:分析和细化影响性能需求的各种因素
CPU计算 | 内存 | 外设IO | 总线通信 | |
硬件电路 | 1.主时钟 2. 高速CPU | 1. 主时钟 2. 高速内存 | 1. 主时钟 2. 高速外设 3. 高速flash硬盘 | 1. 主时钟 2. 高速总线 |
CPU架构 | 1. ALU运算速度 2. 指令执行速度 3. 流水线 4. 吞吐量与吞吐率 5. 高性能计算 | 1. 主存容量和存取速度 2. 层次性 3. cache | 1. IO指令速度 2. IO访问速度 | 1 . 字长和数据通路宽度 2. 内部高速总线 3. 内部互联总线 |
操作系统 | 1. 操作系统调度与优先级 2. 实时性调度 3. 异常处理 4. 调度策略与算法 | 1. 虚拟内存技术 2.减少内存拷贝 3. 内存层次模型 4. 分区管理 5. 内存管理与算法 | 1.响应时间与完成时间 2. 中断响应 3. 中断屏蔽 4. IO缓存 | 1. 进程间通信与进程间数据传输与拷贝 2. 内核空间与用户空间数据传送 3. 死锁 |
数据库 | 1. CPU效率 2. CPU多核 3. 负载均衡 | 1. 网络存储技术 2. 索引优化 3. 查询优化 | 1.避免不必要的硬盘访问与缓存 2. 读写分离 | 1. 网络数据库之间通信 2. 本地备份,定期同步 |
网络通信 | 1. DMA传送 2. | 1. 避免不必要的内存拷贝 2. 避免 | 1. 提升通信的响应速度 | 1. 采用高速通信链路 |
分布式 | 1. 负载均衡 | |||
应用程序 | 与特定的业务应用算法相关 | 与特定的业务应用算法相关 | 与特定的业务应用算法相关 | 与特定的业务应用算法相关 |
编程技巧与操作目标 | 1. 降低无效的CPU占用的时间 2. 较少CPU指令数量 | 1.避免无效的访问内存 | 1. 避免无效的访问低效的IO 2. 避免IO等待 | 1. 避免不必要的网络通信 2. 避免低速通信 |
算法 | ||||
数据 结构 | ||||
软件架构 |
第三章 系统设计:为高性能设计好系统架构
第四章 系统实现
通过芯片设计、编程语言和代码编程来实现高性能信息系统。