我的 PC 和伺服器之間有千兆位元連線(iperf3 測試顯示 ~930Mbps),我希望能夠盡快傳輸大型檔案。伺服器上的硬碟透過USB3連接,並且是Rock64。使用 ssh(我將 btrbk 與 ssh 結合使用)我認為瓶頸可能是 ssh,因為 CPU 使用率高且溫度較高(~60C)。我確實禁用了壓縮,儘管我認為默認情況下它是禁用的(將其放在 ~/.ssh/config 中)。我的速度最高只有 350Mbps,但波動很大,我認為 Rock64 無法處理那麼多資料的密碼。一段時間後,由於某種我不確定的原因,它的速度減慢了(不到 1Mbps)。重新啟動傳輸成功。 (可能與問題無關)。
我需要一個至少可以達到 480Mbps 速度的密碼。不過,由於實際的 USB3 速度,您可能可以稍微降低該數字。不太擔心安全性,因為它只是來自 PC > 路由器 > 伺服器的乙太網路連接,但沒有/弱加密無論如何都會過大。因此,最好是能夠達到上述速度的最安全的密碼。
答案1
每個密碼都可以支援 480Mbps - 但許多 CPU 無法足夠快地執行該密碼。因此,您正在尋找適合您的 CPU 的足夠快的實作。
執行鍊是
read from disk -> encrypt -> send over network -> decrypt -> write to disk
所以首先你需要確保,這確實是加密阻礙了你
開始nc
而不是 ssh
nc -l -p 9999 > /path/to/destination/file # on the receiving side
nc -N [ip.of.receiver.pc] 9999 < /path/of/original/file # on the sending side
這將使加密/解密脫離鏈,並讓您了解實際可能的速度。
接下來檢查您的發送端是否對某些密碼進行了硬體加速加密。很可能不會,但值得一試。
嘗試arcfour
密碼可能會帶給你希望
答案2
我發現了一個有趣的密碼速度部落格。它讓您了解如何在沒有網路的情況下測量密碼速度。
for i in `ssh -Q cipher`; do dd if=/dev/zero bs=1M count=100 2> /dev/null \
| ssh -c $i someuser@localhost "(time -p cat) > /dev/null" 2>&1 \
| grep real | awk '{print "'$i': "100 / $2" MB/s" }'; done
因此,您實際上可以測量特定硬體上密碼的效能。