基本使用

networkQuality 是一个命令行工具,需要使用「终端」App(或者你首选的其他终端模拟器)运行。方法是:

首先,点按「程序坞」(Dock)中的「启动台」(LaunchPad)图标,在搜索栏中键入「终端」,然后点按「终端」图标。

(或者,在「访达」中,打开 /应用程序/实用工具 文件夹,然后双击「终端」。)

在打开的终端窗口中,输入 networkQuality(注意大小写),然后回车。

此时,系统会开始同时测试下载和上传速度,并将当前速率实时显示在终端窗口中,形如:

current download capacity: 247.850 Mbps - current upload capacity: 9.545 Mbps

大约半分钟后,测速完成,终端会显示一段测速结果,形如:

Upload capacity: 16.938 Mbps
Download capacity: 232.850 Mbps
Upload flows: 20
Download flows: 16
Responsiveness: Low (188 RPM)

其中,「Upload/download capacity」是指上传/下载的带宽;「Upload/download flows」是指刚才测试中完成传输的测速文件数量。

至于「Upload/download responsiveness」,是指上传和下载的综合「响应能力」,根据 Apple 的支持文档,它的衡量指标是每分钟往返次数 (RPM),即在正常工作条件下,网络能够在一分钟内完成的连续往返次数或事务数量。

根据 RPM 的高低数值不同,networkQuality 对响应能力的评价也分为「低」「中」「高」三个等级。这可以大致反映当前网络的拥堵程度,从而帮助间接估测视频通话、游戏等应用的效果:

  • 评价为「Low」(低),说明同一网络的设备会互相影响,导致其他设备的网络连接不可靠;
  • 评价为「Medium」(中),则表明多设备共享网络时会造成短暂卡顿;
  • 评价为「High」(高)则最为理想,表明网络通畅,多设备并行联网也能和平共处,保持良好连通。

技术细节和进阶操作

如上所述,networkQuality 工具会使用 Apple 的 CDN 作为测试服务器。

具体而言,该工具默认会从一个外部 json 格式文件(目前位于 https://mensura.cdn-apple.com/api/v1/gm/config )获取测试配置。该文件包含三个测试文件地址:

此外,networkQuality 命令可以接受一些参数。比较有实际意义的包括:

  • -c 会输出 json 格式的测速详情;
  • -s 会分开测试下载和上传,而非像默认那样对两者同时测试(同时测试更能反映通话等真实应用的场景);
  • -I 可以测试特定网络接口的速度,例如,命令 networkQuality -I en0 是指测试内建 Wi-Fi 网络的速度。

更多参数和说明,可以用如下命令查阅手册页面 networkQuality(8)man networkQuality

networkQuality的更多相关文章

  1. 利用ICMP协议的PING命令获取客户端当前网络质量 by徐文棋

    无论在windows下,linux也好,unix也好,都可以通过 Ping命令获得当前设备的网络延迟,延迟是客户端到服务端的网络响应时间.通常延迟越低,反应速度越快 这里使用了SimplePing   ...

  2. 如何基于ZEGO SDK 实现通话质量监测

    如何基于ZEGO SDK 实现通话质量监测 1 功能简介 在进行视频通话过程中,用户有时候会出现网络不好的情况,比如在进行多人视频通话或者多人唱歌时,我们需要实时显示用户的网络质量. 示例源码 请参考 ...

  3. 如何基于 ZEGO SDK 实现 Android 通话质量监测

    功能简介 在进行视频通话过程中,用户有时候会出现网络不好的情况,比如在进行多人视频通话或者多人唱歌时,我们需要实时显示用户的网络质量. 示例源码 参考 下载示例源码 获取源码. 相关源码请查看 &qu ...

随机推荐

  1. 巧用 transition 实现短视频 APP 点赞动画

    在各种短视频界面上,我们经常会看到类似这样的点赞动画: 非常的有意思,有意思的交互会让用户更愿意进行互动. 那么,这么有趣的点赞动画,有没有可能使用纯 CSS 实现呢?那当然是必须的,本文,就将巧妙的 ...

  2. BI如何配置“花生壳”,看这一篇就够了

    花生壳作为一款免费的内网穿透软件,在软件行业备受青睐.在做好产品的同时,如何让客户轻松看到,也是非常有必要的.本篇将带领大家使用"花生壳"软件完成BI数据分析的配置.第一步:下载安 ...

  3. MySQL插入重复数据

    MySQL中批量insert into时防止更新插入重复数据去重的方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法 方案一:使用ignore关键字 ...

  4. Haproxy部署及控制台使用手册

    一.介绍 1.简介 HAProxy是一个使用C语言编写开源软件,提供高可用,负载均衡,以及基于TCP(四层)和HTTP(七层)的应用程序代理: HAProxy特别适用于那些负载特大的web站点,这些站 ...

  5. Job And Schedule (V8R6C4)

    KingbaseES 数据库提供了 kdb_schedule 扩展,使得用户能通过类似oracle job 的方式进行job调用.kdb_schedule 提供了三个Schema :dbms_job ...

  6. KingbaseES 支持列加密

    KINGBASE 列加密支持 sm4 和 rc4 加密算法,具体算法在 initdb 时指定,默认是 sm4.要使用列加密,必须 shared_preload_libraries = 'sysencr ...

  7. Yarn上运行spark-shell和spark-sql命令行

    spark-shell On Yarn spark-shell \ --master yarn-client \ --executor-memory 1G \ --num-executors 10 s ...

  8. Linux Netlink学习笔记

    参考链接:https://www.systutorials.com/docs/linux/man/7-netlink/ 1. 监听Netlink消息类型示例 Netlink是用户程序与内核通信的soc ...

  9. Pod原理

    Pod 是 Kubernetes 集群中最基本的调度单元,我们平时在集群中部署的应用都是以 Pod 为单位的,而并不是我们熟知的容器,这样设计的目的是什么呢?为何不直接使用容器呢? 为什么需要 Pod ...

  10. 谈谈对K8S CNI、CRI和CSI插件的理解