本文介绍几种实用的测试服务器间网速的方法。
准备工作
假设有A、B两台服务器,我们在A服务器上测试从B下载文件的速度。
首先在B服务器上生成大小为1GB的测试文件:
[root@node2 ~]# dd bs=1024K count=1024 if=/dev/random of=test1000m.bin 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 5.69383 s, 189 MB/s
接下来介绍两台服务器间的网速测试方法。
SCP测速
scp
是用来拷贝远程主机文件的命令,其用法如下:
scp [-P 远程主机端口] user1@host1:file1 user2@host2:file2
文件传输过程中,会实时显示复制比例、已传输大小、传输速度和剩余时间,因此可以用来测试网速:
[root@node1 ~]# scp root@node2:~/test1000m.bin . test1000m.bin 14% 144MB 13.2MB/s 01:06 ETA
如果想计算平均网速,可以使用time
命令:
time scp root@node2:~/test1000m.bin .
复制完成后,用总数据大小除以总耗时就能得到平均传输速率。
wget测速
wget
可以下载网络网络文件,支持HTTP、HTTPS、FTP等多种协议。下载过程中同样会实时显示复制比例、已传输大小、传输速度和剩余时间。
由于HTTPS协议涉及到数据加解密,为避免CPU性能影响,推荐使用HTTP协议下载文件来测试服务器间的网速。首先在B服务器上运行静态文件服务器,这里我们使用python的SimpleHTTPServer模块来完成:
python -m SimpleHTTPServer
# python3 请使用http.server模块
python3 -m http.server
该命令会启动一个简单的HTTP服务器,监听在8000端口。
接着在A服务器上测试下载速度:
[root@node1 ~]# wget http://node2:8000/test1000m.bin --2020-12-03 02:01:19-- http://raft:8000/test1000m.bin Resolving node2 (node2)... xxx.xxx.xx.xx Connecting to raft (node2)|xxx.xxx.xx.xx|:8000... connected. HTTP request sent, awaiting response... 200 OK Length: 1073741824 (1.0G) [application/octet-stream] Saving to: ‘test1000m.bin’ test1000m.bin 68%[======================> ] 696.59M 10.3MB/s eta 32s
同理,如果想得到平均速度,可以加上time
命令,结束后再计算平均网速。
除了wget,也可以用功能更强大的curl
iperf3测速
和scp和wget/curl相比,iperf
是专业的网络测速工具。目前大版本是3,因此命令行工具是 iperf3
。
iperf3测速分服务端和客户端,两台机器上均需安装iperf3:
# CentOS系统安装 yum install -y iperf3 # Ubuntu/Debian系统 apt install -y iperf3
接着启动服务端,并放行端口:
iperf3 -s # iperf3默认监听5201端口,如果想换成其他端口请用-p参数: # iperf3 -p 8000 -s # 记得放行防火墙 firewall-cmd --add-port=5201/tcp
客户端连接到服务端测速:
iperf3 -c 服务器ip # 如果服务端端口不是5201,使用-p选项指定 # iperf3 -c 服务器ip -p 服务器端口
测速过程中服务端和客户端输出差不多,以下是客户端的一个示例输出:
[root@node1 ~]# iperf3 -c node2 Connecting to host node2, port 5201 [ 5] local xxxx port xxx connected to xxxx port xxx [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 25.4 MBytes 213 Mbits/sec 0 467 KBytes [ 5] 1.00-2.00 sec 22.5 MBytes 189 Mbits/sec 0 469 KBytes [ 5] 2.00-3.00 sec 22.5 MBytes 189 Mbits/sec 0 467 KBytes [ 5] 3.00-4.00 sec 22.5 MBytes 189 Mbits/sec 0 481 KBytes [ 5] 4.00-5.00 sec 22.5 MBytes 189 Mbits/sec 0 492 KBytes [ 5] 5.00-6.00 sec 23.8 MBytes 199 Mbits/sec 0 481 KBytes [ 5] 6.00-7.00 sec 22.5 MBytes 189 Mbits/sec 0 481 KBytes [ 5] 7.00-8.00 sec 22.5 MBytes 189 Mbits/sec 0 475 KBytes [ 5] 8.00-9.00 sec 22.5 MBytes 189 Mbits/sec 0 512 KBytes [ 5] 9.00-10.00 sec 22.5 MBytes 189 Mbits/sec 0 467 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 229 MBytes 192 Mbits/sec 0 sender [ 5] 0.00-10.00 sec 226 MBytes 190 Mbits/sec receiver iperf Done.
可以看到,iperf3
测出来的速度比上面两个工具的都要高,更能反应服务器之间的真实带宽。
你好,我今天看完你关于ssr的教程,是不是去搬瓦工网站买完服务端信息 就可以填到梅林上面了?
是的