性能战术

  要:本文主要通过淘宝网操作流程举例对软件质量属性中的性能进行了分析,对这种属性进行了一定程度的概述。

关键词:性能,淘宝网,阿里云服务器

 

AbstractThis paper mainly analyzes the performance of software quality attributes through the example of Taobao operation process, and summarizes this attribute to a certain extent.

Key wordsperformance TaoBao  property  The server 

 

引言:软件属性包含功能属性和质量属性,显然在软件架构里,我们更要注重的是软件的质量属性软件质量特性包括功能性、可靠性、易用性、效率、可维护性、可移植性等 6个方面,每个方面都包含若干个子特性。功能性:适合性、准确性、互操作性、依从性、安全性;可靠性:成熟性、容错性、易恢复性;易用性:易理解性、易学性、易操作性;效率:时间特性、资源特性;可维护性:易分析性、易改变性、稳定性、易测试性;可移植性:适应性、易安装性、遵循性、易替换性

1系统性能优劣的判断

直观来说,一个用户从输入网址到按下回车键,看到网页的快慢,这就是性能。对于我们来说,需要去挖掘这个过程,因为这决定我们怎么去做性能优化。用户体验软件是最直观影响其使用体验感的就是等待时间,也就是我们说的响应时间,下面我们将以淘宝网的交互场景来对性能进行简单分析

场景部分

可能的值

场景

买家购买商品

刺激

购买商品

制品

生成订单

环境

系统正常运行

响应

生成订单后提示用户支付

响应度量

等待时间、判断是否有货

一般针对淘宝双十一这样的活动,软件一般等待的时间要比日常等待的时间多,但是又不能让用户感受到有明显等待的时间,一般10秒为等待感受的时间,多余十秒会对用户体验造成极大的影响,更有甚者会直接放弃操作,会导致用户流失。等待时间是一个直观的影响,造成这样的影响具体有单位时间处理的操作量,系统吞吐量,丢包这些硬性指标,反应这些指标就有系统操作的准确性,响应操作的维度。如果将操作的准确性定为小于十万分之一为系统正常运行,那么单位时间同时操作的和丢包就是直观提高准确性的指标。

系统性能的提高

       近几年双十一,支付宝需要面对近14万每秒的订单创建,8.59万笔每秒的支付,还有就是一天10TB左右的数据库写入量而淘宝分了三个阶段来完成

第一阶段

  现阶段手机的内存都是足够用的,一般手机没有明显的卡顿用户是不会清理app缓存,而通过设置app缓存,第二次之后都可以从app缓存中提取,减少反映时间。还可以将css放在文件的首部,js放在文件的尾部,这样便于页面基本的框架先显示出来,而具体的js特效,则可以延后执行

第二阶段

  由于中国地域广,跨度大,即便是光纤传输也会有延迟,网络的带宽将直接影响数据的传输,带宽的速度分为上传和下载,对于一般用户来说,对下载的需求远远大于上传的需求,比如百兆带宽下载速度理论上是12.5m/s,而上传速度大约不到1.25m,但是服务器端上的上传和下载同样重要,最极端的情况下,每下载一个针对数据库数据操作,就要响应一个结果出来,那么针对这些这些,带宽的工作量就会更加沉重。

针对用户一次操作,比如淘宝搜索一个商品,界面反映出商品的信息这个过程,用户端的带宽使用是完全够用的,开发人员也没有办法决定,那么就要针对服务器端的带宽进行优化和提高,最简单的方法是增加服务器的带宽,但是盲目的增加会很消耗成本,性价比最低,那么就要针对不同软件不同的业务需求来计算网络带宽的需求。对于不同运行商,不同用户的反应时间是不同的,比如用户端是联通的宽带,访问的服务器端也联通的宽带会快速访问,比用户端是移动和电信要快的多,所以针对不同地区建立属于不同运行商的宽带

第三阶段

  第三阶段主要针对数据库端进行操作,以阿里云数据库为例,采用了异地多活体技术,在多个地区部署服务器,如果一个地区的服务器发生不可逆转的情况,马上其他地方的服务器会迅速上线,不同的历史数据在慢慢导入将业务划分成各个单元,根据用户和业务的不同进行划分,一次操作进行封闭,这样属于同类型的操作都会处于不可操作的情况,那么针对这样的一个单元在同一进行处理,就能解决数据一致性的问题阿里云最主要的的是针对自己产品的服务,开发出属于自己的服务器OceanBase,OceanBase对比传统的服务器是将数据分为主要数据和次要数据,主要数据是相对稳定改变较少的数据,而次要数据就是将一段时间内对数据库的增删改查以增量的方式进行存储,再根据主键主体数据的存放来进行查找,OceanBase的数据库操作日志非常的全面,如果出现宕机或者停电,可以迅速将操作日志进行迁移。

原文地址:https://www.cnblogs.com/vvxvv/p/14640983.html