《服务资源重要性分析》调研报告
本月对服务资源重要性进行调研,现分享如下。
一、相关定义
1. 服务
按服务类型进行划分,典型的有网页浏览服务、流媒体服务、下载服务、杀毒服务、CDN服务、云服务、邮件服务、OA服务、支付服务、登录服务等。
2. 服务资源
即提供服务的URL资源。
3. 服务资源重要性
对服务QOS影响比较大的URL资源。比如:影响显示,影响功能等等。
二、服务资源重要性分析
主要从服务入口、流量消耗、资源消耗和最影响用户感官体验四个方面进行分析:
1. 服务入口 (以网页浏览服务为例)
(1) 定义:服务入口是指不同网络环境下访问该服务的URL入口,能够打开页面,则为服务入口。
(2) 测量方法:主要通过主动测量的方法进行确定,有一定数据基础之后可以进行被动测量
a) 主动:手动输入地址,看页面是否能够显示(手工方法);或检查URL是否能返回标题或者待下载的资源(半自动方法)
b) 被动:分析URL关联关系,找出度较大的节点
(3) 测量举例:
sina.com的入口有:
http(s)://www.sina.com
http(s)://www.sina.cn
http(s)://www.sina.com.cn
…
2. 流量消耗型
(1) 定义:访问一个服务,最消耗服务端流量资源的URL,即负载比较大的资源
(2) 测量方法:主动测量服务加载过程中URL资源的负载,对URL资源的负载进行排序,取最大的前5个资源
(3) 测量举例:如bilibili.com网站消耗主页面最大的host资源见下表:
排名 | Host | 数目 | 总大小 | 功能 |
1 | i0.hdslb.com | 13 | 3.4MB | 页内视频图片 |
2 | s1.hdslb.com | 10 | 653KB | 模块图片和JS |
3 | i2.hdslb.com | 2 | 43.4KB | 页内视频图片 |
4 | www.bilibili.com | 3 | 40KB | 入口资源 |
5 | api.bilibili.com | 13 | 7.3KB | 网页的用户登录、搜索接口 |
6 | cm.bilibili.com | 56 | 5.6KB | 用户统计信息 |
7 | api.live.bilibili.com | 2 | 3.7KB | 视频参数接口 |
8 | data.bilibili.com | 7 | 2.0KB | 框架图 |
9 | api.vc.bilibili.com | 1 | 1.9KB | 用户参数接口 |
10 | apm-misaka.biliapi.net | 2 | 0KB | 跨域接口 |
3. 资源消耗型
(1) 定义:访问一个服务,最消耗服务端计算资源的URL,如查询数据库的URL(搜索服务,登录服务)、部分模块的加载、短信验证URL等
(2) 测量方法:手动检查对接该资源的API接口
(3) 测量举例:
a) 数据库查找利用资源(消耗服务器计算资源)
网站资源搜索框:https://search.bilibili.com/
登录服务:https://data.bilibili.com/log/web?
b) 部分模块的加载服务
资源的host为api.bilibili.com,一般提供网站内部的模块接口:直播、动画等等。
4. 最影响用户感官体验
(1)定义:影响用户对网站的访问体验的资源,如影响加载速度、网页框架、网页主要信息的资源
(2)测量方法:在Chrome开发者模式中,Network 面板右击请求即可看到 block 选项,这个选项能在请求(URL)和域(domain)的级别上打断点。
(3)测量举例:如bilibili.com网站,影响用户感官体验的域名和URL分别是:
Host | 数目 | 影响 |
i0.hdslb.com | 13 | 影响网站图标显示 |
s1.hdslb.com | 10 | 严重影响显示(图片和结构),不影响功能 |
i2.hdslb.com | 2 | 无明显影响 |
www.bilibili.com | 3 | 无明显影响 |
api.bilibili.com | 13 | 影响部分模块整体显示 |
cm.bilibili.com | 56 | 无明显影响 |
api.live.bilibili.com | 2 | 影响直播模块显示 |
data.bilibili.com | 7 | 无明显影响 |
api.vc.bilibili.com | 1 | 无明显影响 |
apm-misaka.biliapi.net | 2 | 无明显影响 |
URL | 影响 |
https://s1.hdslb.com/bfs/static/jinkela/international-home/css/international-home.1.a349570943e31ec94901d3c3448cd3787447d3e5.css | 严重影响网页结构显示 |
https://s1.hdslb.com/bfs/static/jinkela/international-home/css/international-home.0.a349570943e31ec94901d3c3448cd3787447d3e5.css | |
JS 脚本 | 所有资源无明显影响 |
https://www.bilibili.com/ | 无明显影响 (block请求之后还会有其他请求) |
https://i0.hdslb.com/bfs/archive/1be2fd76cc98cdc6a595c05c3134fbf937a1c126.png | 影响改图片在网站中的显示 |
https://www.bilibili.com/page-proxy/game-nav.html | 无明显影响 |
https://data.bilibili.com/log/web?0000141574842959866https%3A%2F%2Fwww.bilibili.com%2F||333.851.0.0|1574842959866||841x789|1||{}|BB5933A8-47EC-2D0E-2418-7EBF7131D61A99731infoc|zh-CN|1-1 | 无明显影响 |
注:https://www.bilibili.com页面资源共132个,上表抽取页面资源的若干个URL进行测试的结果。
特殊说明:
我们在表格中可以看到,block 资源https://www.bilibili.com/ 对网页的页面加载无明显影响,但是由于其入口资源的特殊性,我们对比MesaLab网站的入口资源,看block的影响。如下图,可以发现如果屏蔽MesaLab的入口资源,该页面不能正常显示。
对比分析:为什么屏蔽入口资源对bilibili无明显影响但是对MesaLab影响较大?
可能性猜想:MesaLab网站面向的用户规模较小,没有加一些负载均衡等大流量网站使用的策略;而bilibili作为视频网站,需要提供给用户更好的访问,一般负载均衡或者其他相关资源分布较规律。因此block并不能起作用。