浅谈质量属性之性能属性
引言:质量属性中的性能属性战术主要关注系统对用户请求的响应时间。针对于**系统的性能战术,我们采用了固定优先级的调度策略,为每个企业的提交请求分配一个特定的优先级,并按该优先级顺序对提交的表单进行审核。该策略能够保证为企业优先级较高的请求提供更好的服务,但是,对一些优先级较低的请求来说,可能要等待很长的时间才能得到服务,因为它前面有很多优先级较高的请求。所有我设计的优先级策略是轮转调度策略,它对请求进行排序,然后在允许的时候,把资源分配给该排序中的下一个请求。轮转的一个特殊形式就是循环执行,在循环执行中,资源分配是每隔一个固定的时间进行的。
什么是性能:性能是指系统的响应能力。性能与时间有关。事件(中断、消息、用户请求或时间已到)发生时,系统必须做出响应。事件到达和相应有很多特性,但性能基本上与事件发生时,将要耗费系统多长时间做出响应有关。
目标:对一定的时间限制内到达系统的时间生成一个响应,这些时间可以是消息到达、定时器到时以及系统状态的变化。
影响响应时间的两个因素:
1.资源消耗:资源包括CPU、数据存储、网络通信带宽和内存等;资源消耗是指实际需要耗费的时间;
资源消耗包括:每个事件都要经过一定的处理序列
- 闭锁时间:由于资源争用、资源不可用或长时间计算导致事件无法处理,这是指计算机可能等待的时间。
维持性能的战术主要有三类:资源需求、资源管理以及资源仲裁。
1.资源需求-分析影响性能的资源因素
事件流是需求的源;
需求两个特性:
1.资源流中事件之间的时间间隔
2.每个请求所消耗的资源
资源需求战术:
1.减少处理一个事件流所需要的资源。
1.提高计算效率
2.减少计算开销
2.减少所处理事件的数量
3.控制资源的使用
1.限制执行时间
2.限制队列大小
2.资源管理-提高资源的应用效率
1.引入并发
2.维持数据或计算的多个副本
3.增加可用资源
3.资源仲裁-解决资源的争用
1.先进先出
2.固定优先级
3.动态优先级:轮转,时限时间最早优先
4.静态调用
资源需求是分析影响性能的资源因素,可以通过提高计算效率、减少计算开销、管理时间率等方式来实现。资源管理是提高资源的应用效率,可以通过引入并发、维持多个副本、增加可用资源等方式来实现。资源仲裁是解决资源的争用,可以通过调整调度策略来实现。
提高系统的性能是为了加快系统的响应速度,缩短系统反应的时间。谁都不想使用一个反应迟钝的系统,如果用户在数秒之内没有获得系统应该给出的反应,那必然会影响使用体验,假若这个时间再长一些,用户怕是会立马关掉并且不会想再打开第二次了,那么这对于一个系统的架构来说就是失败的。
实例:老生常谈的12306春运高并发购票的问题,春运期间庞大的并发量直接将网站击垮,对此12306互联网购票系统的改造给了我们一个很好的答案。其建立了一个可伸缩扩展的云应用平台,在网络阻塞时可以动态增加带宽,当服务器CPU到达高位时,可以快速从资源池获取虚拟机资源来分摊负荷。这就是一个成功的案例,网站初次建立是由于硬件的技术和用户的需求,谁也没有想到会如此快速的增长到这么高的并发,但是随着时代的发展,系统的性能就显得尤为重要。
提高系统的性能无疑可以优化用户的使用体验,但是拥有一个人可以接受的正常性能则是一个系统的必然要求,不同的系统对性能的要求都不能脱离开其业务流程来谈,在提高系统性能上付出的成本也应该与其主要的业务流程和用户的体量大小相对应。
参考文献
http://www.bubuko.com/infodetail-3444205.html
http://www.qishunwang.net/knowledge_show_66327.aspx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!