网络性能评价方法

article/2025/9/26 17:45:27

网络性能评价的实现

网络的优劣会影响网络交互的延迟时间、稳定性和速度,从用户体验上集中表现为打开页面的速度缓慢。比如在较差的网络并发的请求数会被降低,以避免网络性能因为阻塞而进一步恶化。

针对不同网络品质的优化的前提就是要有一种方法来度量网络的品质。

目前度量网络的品质的方法如果仅以网络连接类型来区分,比如2G, 3G, Wifi等,无法有效感知到当时的网络状态。在同一网络连接类型下,网络的品质仍有大幅波动,可能会因为阻塞以及线路上问题导致延迟上抖动(jitter)、丢失数据包、数据包损坏等情况。在现实场景中,比如繁忙时段,或者处在信号不好的区域时(如交通工具上),使用网络类型来判断当时的网络品质会有很大偏差。

本文基于对一段时间的网络数据的记录,进行算法处理,可以测出一个衡量当时网络状态的指标(MI: Measurement Index)。具体应用到移动设备上时,考虑到计算量的问题,可以使用近似算法减小计算的复杂度。

目前的使用的算法是结合历史数据进行统计,即运行指数平滑算法。这样理论上因为同时使用了本次及之前的历史的数据进行计算,可以将单次统计的数据量减少。

网络数据的定义是通过模拟测试环境录制得来。其中包括两个主要内容:
1. 定义网络评测的参数
2. 定义网络状态区间范围

在实际应用时,还需要考虑数据采集的区间和数据量,以及数据的平滑处理。

网络评测的参数

经过对比评估以下六个参数对应于latency和bandwidth的设定,得到数据如下:
1. Speed, 传输速率:由收完数据的时间除去所收取的数据大小。
2. Header Received: 收到响应头的时间 (即TTFB)。
3. Connected: 连接到主机的时间。
4. Sent: 在Java层完成调用完成发送请求的时间。
5. DNS Resolved: DNS解析的时间。
6. Finished: 整个请求完成的时间。
01

对比分析各参数中位数与网络状态(rate)后,发现以下参数与网络状态的关联关系,其中Header Received的关联关系为正相关。

所以定义由Header Received时间定为网络衡量指标

定义网络状态区间范围

关于网络状态范围,由于网络的波动性,不能限定在具体的一个值的区分。这里使用K中值分类法(R Script: compareData.R)。

将数据分为四个簇,依次取出其设定范围。再以目前测试发现最大值分布在12000左右(约为6000延迟), 所以使用13000,即最大延迟数,进行归一化处理。

下图表示的为分为四个簇的情况(每一项数据为一个URL测试5次所得结果):
02
其中cluster 4最佳,cluster 1为最差的区间, 为保守起见,在目前的实现将cluster 1与cluster 2合并来看。

定义数据分析的时间段

依次采集分析2x1URL, 5x1URL,5x2URLs, 5x4URLs及3x1URL数据。对比各种情况下数据聚合的情况。其中2x1URL 表现数据不足,四个簇不能很好的分隔:
03
这时的每一项值的数据量为50条左右。

当3x1URL时,每一项值的数据量为80条上下,四个簇重合部分已经有很好的改善:
04
由上面可知,如果使用独立样本进行计算,50笔数据较难获得有效的样本数据,至少需要80笔数据,才能得出较合适的统计。而移动网络下,特别是2G网络下,80个请求会耗时太久,不利于及时体现当前网络数据。

目前的使用的算法是结合历史数据进行统计,即运行指数平滑算法。这样理论上因为同时使用了本次及之前的历史的数据进行计算,可以将单次统计的数据量减少。

定义数据的样本大小及采集周期

目前选定最小采集样本为15笔请求,包含失败的请求,其中失败的请求视为一次最大延迟记录(取值见上面的讨论)。 最小采集周期为30秒,最大采集周期为4分钟。

考虑到网络的变化特性,一是不能太快跳变,二是及时逼近。另外在移动网络下,数据量可能达不到采集的要求,必须有效地利用历史数据。所以系数的选择需要考虑到两个方面:一是收敛速度,二是兼顾历史数据(利用历史数据进行计算,并避免数据不准导致的误判。)。

这里存在三个变量: 采集的周期(t),采集的样本数(n)及平滑系数(a)。
采集样本数是指最小可以用于统计运算的数据数量。根据模拟测试(R脚本为simulatorPhase.R), 判断数据集的大小的波动性可以在平滑系数的辅助下达到一定的稳定性(平滑系数越小,数据分布越稳定,但收敛速度越慢.)。 比如下图中使用样本数15、平滑系数0.3的组合可以达到样本数20、平滑系数0.4组合的标准差范围。(平滑系数越大标准差越大!)

采集样本为20,平滑系数为0.4(总数据量4000),结果的标准差为579.87(非定值):
05

采集样本为15,平滑系数为0.4(总数据量4000),结果的标准差为589.16(非定值):
06

采集样本为15,平滑系数为0.3(总数据量4000),结果的标准差为576.41(非定值):
07

采集样本为15,平滑系数为0.6(总数据量4000),结果的标准差为872.23(非定值):
08

采集周期是指最小的数据采集时间,在此时间内只负责收集数据,不进行计算。在采集周期内可能并不会收集到足够的数据,就会延长到一个最大采集周期。
采集的周期的大小取决于最小采集样本的大小。目前设定为30秒。

最大采集周期的选定,取值于移动网络下,以无图模式一分钟浏览一个新浪新闻页面,达到采集样本数量的时间,即4分钟。

下图为上述参数在实际测试过程中观察到的Measurement Index分布的情况, 在数据演化将近6次(约3分钟)后维持到6385上下。
09

定义数据的平滑系数

不同的平滑系数会一个处理波动时的浮动范围,表示无法明确判别的区域,归为较好的网络处理。由此定义了实现时使用的模糊区间。

测试对比了多个候选的系数。以0.3及0.65为例说明如下。

平滑系数:0.3

指数0.3是假设网络环境相对稳定,但受网络抖动的影响会有波动。

在计算时选择经过多样本获得的历史数据的比重大于新取得的单样本数据。缺点是会造成逼近速度变缓, 近8次逼近到目标值(相差200以内)。

再模拟两次数据统计的波动。单次统计数据约为2000,若分成两次统计,可能会遇到一次3500,后一次500的大幅波动。应用系数0.3后统计结果保持在平均值2000的上下200的范围, 对应于指数上下浮动0.03。
以下为其示意图:
10

8次逼近所需时间视最小采集周期而定,一般情况下约为4分钟时间。

考虑大幅波动时的标准差,以3000~1500的波动为例,其标准差为:447.56。
11

系数0.3最大的优势在于适应小样本数据的情况。详细之前的讨论。为了弥补主要的缺点,将在一个网络下第一次计算时,先使用系数0.5, 再调整为0.3。效果如下:
12

以下为实际测试结果(latency:2000,bandwidth 80kbps, standard MI:~2500):
13

平滑系数:0.65

当选取0.65作为系数时,当前值所占的比重更高。需要3次运算逼近到设定值(130以内,占比小于1%)。

如上模拟两次数据统计的波动。这时统计结果保持在平均值2000的上下约800(逼近于777)的范围。即设定的界定值前后800对应于性能指数上下浮动0.06。
14

考虑大幅波动时的标准差,以3000~1500的波动为例,其标准差为:381.9。较系数取0.5时并没引入太多的误差,却将收敛所用的次数降低了2次。
15

与实际场景的对应

与现实场景的对应关系如下(收集的现场数据):

ScenarioLatencyIndex
包含地铁繁忙时间的数据(2G)500~600019~100
地铁一般场景(2G)100~4005~64
公司座位
200~50032~52
3G&Wifi50~800~4

下面为其分布示意图(横轴依次代表上表中的五项,请忽略第3项数据):
16

参考

  • 网络性能评价

http://chatgpt.dhexx.cn/article/6GysUW17.shtml

相关文章

网络性能评价

这里并不是要系统说明网络性能评测,而是闲聊一些体会。 系统观 从考察网络的性能角度上来看网络,总是难以捉摸,其中涉及的因素很多。各种网络参数和各类概率事件相互作用,最终表现出一个不断变化的系统环境。作为一个运用网络的开…

如何测试网络线路的质量

不接触网络的人,不会去关注网络的质量问题,只会考虑怎么没有网络了,这是什么情况?OK,小面我用自己的理解来解释如何衡量网络的质量标准 其实,我总结的这些都是通过在多台POS机系统(每个店使用的…

网络性能评估

在Linux中常见的网络性能指标如下 l 带宽 表示链路的最大传输速率,单位是b/s 比特/秒,在位服务器选网卡时,带宽就是最核心的参考指标,常用的带宽有1000M,10G,40G,100G等 网络带宽测试&#…

LTE 网络质量指标

网络质量参数 对于UE而言,LTE网络质量主要看三个参数:RSRP,SINR,RSRQ。 RSRP是参考信号接收功率, 取值范围:-44 ~ -140dBm,值越大越好。 SINR是信噪比指标,取值范围:0…

Android实时网络质量检测

Android实时质量检测 传送门: github csdn 原理 使用ping -n -i %f -c %d %s命令实现网络质量检测,具体参数如下: -n count 发送 count 指定的 ECHO 数据包数。默认值为 4 -i 生存时间 -c 路由隔离仓标识符 如图ping后返回的最后一行可以…

为什么网站总显示服务器不能创建对象,Win7系统下IE网页报错“Automation 服务器不能创建对象”怎么办?...

在Win7系统下使用微软老牌IE浏览器经常出现各种各样的故障,比如当前页面脚本出现错误、网页无法播放视屏、无法加载FLASH播放器等,近日又有用户反馈IE网页报错“Automation 服务器不能创建对象”,据了解,出现这种情况是部分网站脚…

JS 解决IE浏览器出现Automation 服务器不能创建对象

1、Automation 服务器不能创建对象 解决方案: 工具 -> Internet选项 -> 安全 -> 自定义级别->ActiveX控件和插件(启用如下ActiveX控件设置) 2、IE浏览器上传文件时本地路径变成”C:\fakepath\” 解决方案: 工具 -&…

automation 服务器不能创建对象_高并发服务器逻辑处理瓶颈,如何解决?

高并发服务器逻辑处理瓶颈,如何解决?首先我们先了解什么是并发! 并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个…

windows无法新建计算机对象,win10系统ie浏览器提示“Automation 服务器不能创建对象”的办法...

有关win10系统ie浏览器提示“Automation 服务器不能创建对象”的操作方法想必大家有所耳闻。但是能够对win10系统ie浏览器提示“Automation 服务器不能创建对象”进行实际操作的人却不多。其实解决win10系统ie浏览器提示“Automation 服务器不能创建对象”的问题也不是难事&…

Automation 服务器不能创建对象

Automation 服务器不能创建对象 好记性不如烂笔头,重装了N次系统 ,终于知道了原因。 用VC6.0 写一个atl com 用IE执行,可以正常调用 ,用 hta可以正常调用 。 但是用cscript.exe 就是不能调用 成功!!&…

【调试环境】Automation服务器不能创建对象 | EvilNum的JavaScript

Win7 IE8 调试的HTML代码错误IE设置💔💔💔注册表💜💜💜CLSID 成功💫💫💫允许阻止的内容安全警告-是允许ActiveX交互F12进行调试停止运行脚本脚本窗口 调试状态 调试的HT…

网页打印服务器无法创建对象,打印问题,小编教你怎么解决automation服务器不能创建对象...

小编其实第一次在遇到“automation服务器不能创建对象”的问题时,是一脸懵的,因为不知道这是什么意思,也不知道怎么解决。后来对于朋友相助,才得以解决,他还教我以后遇到这问题要怎么解决。那么今天小编就将解决的方法…

为什么网站总显示服务器不能创建对象,IE浏览器出现“Automation 服务器不能创建对象”解决教程...

如果你在使用IE浏览器传输文件的时候,出现了“Automation 服务器不能创建对象”情况的话,一般都是因为某些网站脚本和认证不太规范导致的,所以你可以用下面的方法去解决。 1、打开IE浏览器,鼠标点击“工具”菜单,点击后…

电脑上导表显示服务器不能创建对象6,win10系统提示automation服务器不能创建对象的还原办法...

win10系统使用久了,好多网友反馈说win10系统提示automation服务器不能创建对象的问题,非常不方便。有什么办法可以永久解决win10系统提示automation服务器不能创建对象的问题,面对win10系统提示automation服务器不能创建对象的图文步骤非常简…

来自网页的消息服务器不能创建对象,电脑IE浏览器提示“Automation服务器不能创建对象”怎么办...

‍ 不少用户反映说用自己电脑上的IE浏览器上网时,经常会弹出“Automation服务器不能创建对象”的提示,很是烦恼。大家是否也有遇到过此类问题?接下来让系统城小编帮你解决IE浏览器提示“Automation服务器不能创建对象”的提示。 具体方法如下&#xff1…

automation服务器不能创建对象

打开IE浏览器,鼠标点击“工具”菜单,点击后将会带出多个子菜单,如图所示: 在弹出的下拉菜单中,选择“Internet 选项(O)”选项,选择后系统自动弹出一个名为“Internet 选项”的对话…

电脑显示服务器不能创建对象,Automation服务器不能创建对象

悬赏园豆&#xff1a;20 [已解决问题] 解决于 2007-12-19 09:55 <SCRIPT LANGUAGE"JavaScript"> function AutomateExcel() { // Start Excel and get Application object. var oXL new ActiveXObject("Excel.Application"); // G…

解决IE浏览器的Automation 服务器不能创建对象的问题

这两天在部署项目的时候&#xff0c;我遇到使用IE浏览器报错的问题&#xff0c;导致我无法正常预览效果。 下面是我在使用IE浏览器上传文件的时候&#xff0c;遇到了一个报错“Automation 服务器不能创建对象”的问题。分析的得出的原因是:有些网站的脚本处理和相关认证不是很…

Automation服务器不能创建对象 多种解决方法

方法一: 开始-运行&#xff1a;regsvr32 scrrun.dll 解决&#xff1a;主要是Scripting.FileSystemObject&#xff08;FSO 文本文件读写&#xff09;被关闭了&#xff0c;开启FSO功能即可&#xff0c;在“运行”中执行regsvr32 scrrun.dll。 方法二: 请将以下语句复制到记事本中…