如何排查 VPN 连接的低带宽问题?

2 分钟阅读
0

我的 VPN 连接的带宽低。我可以运行哪些测试以验证问题不在我的 Amazon Virtual Private Cloud (Amazon VPC) 中发生?

解决方法

启动两个运行 Linux 的 EC2 实例进行测试

在开始性能测试之前,请在同一 VPC 中的至少两个不同可用区内启动 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例。您将使用这些实例进行网络性能测试。确认实例支持 Linux 上的增强联网

**注意:**在并非共存于相同置放群组或不支持极大帧的实例之间执行网络测试时,请在您的 Linux 实例上检查并设置 MTU

然后,确保您可以通过 SSH 连接到实例。最后,配置实例使用的安全组,以允许通过 iperf3 使用的端口进行通信。用于测试 TCP 性能的默认端口是 5201。

**注意:**您可以使用 -p 配置 iperf3 以使用您所需的端口。

在两个实例上安装 iperf3 网络基准测试工具

使用终端会话连接到 Linux 实例,然后安装 iperf3:

要在基于 RHEL 的 Linux 主机上安装 iperf3:

$ sudo yum install iperf3

要在 Debian/Ubuntu 主机上安装 iperf3:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install git gcc make
$ git clone https://github.com/esnet/iperf3
$ cd iperf3
$ ./configure
$ sudo make
$ sudo make install
# optionally run "make clean" to free up disk space
# by removing artifacts in the build tree.
$ sudo make clean
$ sudo ldconfig

接下来,运行以下命令将一个实例配置为服务器,以便在默认端口上侦听:

$ sudo iperf3 -s -V

使用 iperf3 运行网络测试

将本地主机配置为客户端,然后针对您的实例运行以下一个或多个测试:

以下命令的输出显示了 20 个并行流的结果,其中每个 TCP 连接的窗口大小都在增加:

sudo iperf3 -c <Private/public IP of instance> -P 20 -w 128K -V
sudo iperf3 -c <Private/public IP of instance> -P 20 -w 512K -V
sudo iperf3 -c <Private/public IP of instance> -P 20 -w 1024K -V

以下命令的输出显示了提高带宽容量的结果以及每个 UDP 连接 30 秒的时间范围:

iperf3 -c <Private/public IP of EC2 instance> -u -b 200M -t 30
iperf3 -c <Private/public IP of EC2 instance> -u -b 500M -t 30
iperf3 -c <Private/public IP of EC2 instance> -u -b 1G -t 30

在 EC2 实例的私有 IP 地址和本地主机之间双向运行 iperf3 测试,以对您的 VPN 连接上的网络吞吐量进行基准测试。然后,在实例的两个公有 IP 地址之间运行这些测试,以对通过互联网的吞吐量进行基准测试。

注意:-w 选项表示窗口大小。
两端的大小都必须小于内核参数 net.core.rmem_max 和 net.core.wmem_max 的值。
rmem_max 或 wmem_max 的原定设置可能低于 512KB,具体取决于系统版本。
如果原定设置小于 512KB,请在 iperf 测试之前增加两端的 rmem_max 和 wmem_max 值。

示例:
验证当前的 rmrm_max 和 wmem_max 值:

$ sudo sysctl net.core.rmem_max 
net.core.rmem_max = 212992
$ sudo sysctl net.core.wmem_max 
net.core.wmem_max = 212992

将窗口大小增加到 2048KB:

$ sudo sysctl -w net.core.rmem_max=2097152
$ sudo sysctl -w net.core.wmem_max=2097152

相关信息

如何在同一 VPC 中对 Amazon EC2 Linux 实例之间的网络吞吐量进行基准测试?

AWS 官方
AWS 官方已更新 2 年前