我有一个用于存储的家用 Ubuntu 服务器。我已经在我的笔记本电脑上安装了一个 sftp 共享来访问我的服务器,但是与通过 Bittorrent 下载时通常获得的速度(~800kb/s)相比,我得到的上传速度非常慢(~400kb/s)。这有点奇怪......我应该在局域网上获得比在互联网上更高的速度......
如何加快上传到服务器的速度以及如何解决瓶颈所在?
我有一个用于存储的家用 Ubuntu 服务器。我已经在我的笔记本电脑上安装了一个 sftp 共享来访问我的服务器,但是与通过 Bittorrent 下载时通常获得的速度(~800kb/s)相比,我得到的上传速度非常慢(~400kb/s)。这有点奇怪......我应该在局域网上获得比在互联网上更高的速度......
如何加快上传到服务器的速度以及如何解决瓶颈所在?
传输速度受到三个因素的阻碍。带宽、协议和磁盘速度。
带宽
这似乎真的不是问题 - 正如您提到的那样,您在 LAN 上 - 理想情况下,LAN 上没有太多问题,除了其他用户在网络上占用更多带宽或接收不良(无论是WIFI还是长途电缆)。
协议
这就是更多开销发挥作用的地方。您比较了 Bittorrent 和 SFTP 的速度——这些协议差别很大。Bittorrent 是一种高度压缩、多线程、多种子(多点)的文件传输协议。SFTP 是基于 SSH 的 FTP ,它会增加一些开销,尤其是在与带宽问题配对时。
磁盘
硬盘驱动器是人们谈论下载或上传速度时最不怀疑的事情。但是,您只能以硬盘驱动器旋转的速度保存(和写入)数据(除非您使用的是 SSD(固态磁盘),在这种情况下,这与您无关)。
我注意到您提到您可以从 Bittorrent 下载到您的笔记本电脑,但您的服务器的上行速度很差。您是否尝试过从 Internet 到家庭服务器的速度测试?这应该可以帮助您对从“Internet”到服务器的速度进行基准测试。其次,确保在运行这些测试时(例如打开 Bittorrent),您的网络上没有任何其他主要流量,因为它会产生无效的结果。
您很可能受到正在使用的网络设备功能的限制。请记住,给定两个设备,传输(上游或下游)将仅限于最慢的系统。
您可以查看来自 ethtool 包的ethtool命令的输出,以查看您正在使用的系统和接口的当前关联状态和速度。NetworkManager 还在连接信息中显示该信息...
为了加快传输速度,您还可以选择禁用压缩、禁用加密或对 ssh/sftp 进行任何此类调整,以尝试减少 CPU 用于网络以外的其他用途,从而加快传输速度。
SSH(和 SCP、SFTP)可能会占用大量 CPU。检查客户端或服务器正在使用多少 CPU。如果它们接近 100%,这可能是瓶颈的主要来源。
您可以尝试使用 FTP 或 rsync 来比较结果,这不会对文件传输使用加密。