为这里的懒惰道歉 - 如果我的目标是简单地通过 SSH 远程访问其他服务器,那么从 WSL1“升级”到 WSL2 是否会对性能产生影响?
两个主要用例:
- 使用反向隧道,将远程端口暴露给本地计算机以供浏览器访问(想想 Jupyternotebook 和托管 Django 站点);
- 直接通过 SSH(在 Windows 终端中),使用 Tmux + 一些编辑器来操作代码。
为这里的懒惰道歉 - 如果我的目标是简单地通过 SSH 远程访问其他服务器,那么从 WSL1“升级”到 WSL2 是否会对性能产生影响?
两个主要用例:
真是个好问题——老实说,我以前从未考虑过 WSL1 和 WSL2 之间的网络速度差异,个人也没有真正需要。
显然,答案是肯定的,通过 WSL2 的 SSH 连接似乎比 WSL1 中的要快得多。
为了进行测试,我安装
pv
了 WSL1 和 WSL2 实例,并且:主机是托管的虚拟服务器。
我在新安装的(和
updated
/upgraded
)Ubuntu 20.04 实例上再次重复了测试,wsl --set-version Ubuntu 1
在 WSL2 测试之后进行了测试。结果几乎相同,但 WSL1 保持在 27MiB/s 左右。WSL2 仍然保持在 111MiB/s。
只是为了好玩(不是有效的比较),我跑了:
通过PowerShell将流量推送到 Windows SSH 客户端。当然,这必须在每次调用时跨越 Windows 和 WSL 之间的进程边界,因此会有更多的开销。结果是:
这并不奇怪,因为 WSL1 比 WSL2 更接近 Windows API。
实际上,我对 WSL1 和 WSl2 之间的主要区别感到有些惊讶。老实说,我希望 WSL1 具有性能优势,因为它与 Windows 共享网络,而不是在虚拟化接口和交换机后面进行 NAT。