3

使用 Speedtest CLI 测试服务器带宽质量

 2 years ago
source link: https://blog.ichr.me/post/use-speedtest-cli-to-test-the-speed-of-your-server/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

当你在本地连接服务端的时候,有许多因素影响着所谓的「速度」。如服务器配置、服务器带宽、连接走线、本地网络等。所以有时候感觉「慢」不一定是服务器差,还可能是你走线不好甚至你本地就炸了。

这时候想要真实的反应服务器带宽,直接在服务器上测速才是最能体现的。

而在平时我们常用的设备(电脑、手机)上,都可以使用浏览器直接访问 Speedtest 网站进行测速。可是服务器大多不带图形界面,更没有什么交互式浏览器。不要紧,可以让 Speedtest CLI 来完成。

Speedtest 还是你熟悉的 Speedtest 。CLI 指 命令行界面 ,也正是平时我们操控远程服务器最常见的方式。Speedtest CLI 正是一个专门为命令行界面设计使用 Speedtest 的工具。

TL;DR

  1. 获取主要程式:

    pip install speedtest-cli
    wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
    chmod +x speedtest-cli
  2. speedtest-cli

    or ( 如果你使用第二种方法直接下载的话,定位到下载位置后 )

    ./speedtest-cli
  3. 更多参数请参考官方 Usage

安装 & 使用

如果你的 VPS 安装了 Pip ,可以使用:

pip install speedtest-cli

直接安装。然后任意位置输入 speedtest-cli 即可调用。

但是由于这个程序并不需要什么依赖,我倾向于手动下载 8M 左右的源程序然后直接执行:

wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py --no-check-certificate

如果你的 VPS 并没有安装 wget ,可以考虑使用一下命令安装:

# CentOS
yum -y install wget

# Debian/Ubuntu
apt-get install wget

而我们还要赋予其执行权限:

chmod +x speedtest-cli

这样就可以使用在程序目录下使用 ./speedtest-cli 调用了。

直接运行 speedtest-cli 会默认使用距离你的服务器最近的节点进行测速。当然还有一些高级玩法,如一些可选的参数。

-h, --help            使用帮助
--no-download         不进行下载性能测试
--no-upload           不进行上传性能测试
--single              使用单线程而非多线程
--bytes               使用 bytes 而非 bits 作为单位
--share               将测试结果生成一个以图片形式的分享连接(不受 --csv, --bytes 影响)
--simple              去重冗长的结果,仅显示基本信息
--csv                 去重冗长的结果,仅显示基本信息(不受 --bytes 影响,使用 bits 作为单位)
--csv-delimiter CSV_DELIMITER
                      自定义 CSV 模式中的分界符(默认 ", ")
--csv-header          答应 CSV 标头
--json                去重冗长的结果,仅以 JSON 格式显示基本信息(不受 --bytes 影响,使用 bits 作为单位)
--list                按距离排序展现 speedtest.net 服务器列表
--server SERVER       指定测试服务器 ID ,可指定多个 
--exclude EXCLUDE     排除测试服务器 ID ,可排除多个
--mini MINI           调用 Speedtest Mini 服务(URL)
--source SOURCE       绑定源 IP 地址
--timeout TIMEOUT     设定超时时间,以秒为单位,默认为 10
--secure              使用 HTTPS 连接测试而非 HTTP
--no-pre-allocate     不要预分配上传数据。 默认启用该预分配,以提高上传性能。为了支持内存不足的系统,请使用此选项来避免出现 MemoryError
--version             查看当前 speedtest-cli 版本

使用最频繁的可能要数 --share--server SERVER 了。

关于服务器 ID ,可以使用 --list 按距离排序展现,或者在 这个页面 查看(可使用 ctrl/command + f 快速查找)。

一些题外话。

以上操作只是为了更好地反应服务器带宽质量,一定程度上排除线路或本地导致的影响。

但毕竟我们不能贴着机房使用服务器,最终使用效果还受商家线路优化等功夫是否走心而影响的。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK