加速SCP上傳速度

假設如今須要頻繁上傳一些文件,務必配合scp命令寫一個腳本,效率很高
影響一次上傳速度的因素不少,包含如下
  • 壓縮因素
    • 是否應該啓用壓縮 (見測試 1)
    • 是否啓用多級壓縮 (見測試 2)
  • 修改ssh加密算法 (見測試 3)
  • 完整性校驗 (見測試 4)

測試 - 1 是否應該啓用壓縮

# 使用/不使用壓縮命令

sshpass -p "${PASSWORD}" scp <-C> ${UPLOAD_FILE} root@${IP}:${WORKDIR}複製代碼

壓縮自己消耗時間,想一想若是壓縮過程自己就花掉不少時間,可是文件自己大小卻沒有明顯改變,很不划算,針對壓縮率很大的文件啓用壓縮上傳劃的來。算法

測試數據見下圖,結論以下:安全

  1. 首先咱們使用tar.gz壓縮, 發現二進制文件相比於代碼包的壓縮空間很大
  2. 上傳時間印證了上一條想法, 壓縮二進制文件能節省更多上傳時間,高達59%,可是不管那一種壓縮方式,都能節省你不少時間



測試-3 修改加密算法

# 指定/不指定壓縮命令
sshpass -p "${PASSWORD}" scp <-c aes-xxx> <-C> ${UPLOAD_FILE} root@${IP}:${WORKDIR}複製代碼

加密算法用於保護你的數據,理論上固然是越弱速度越快,可是對你數據的保護相對應也就越少,默認狀況下scp使用aes-128算法,接下來我會選擇經常使用加密算法,分別在有/無壓縮下對比bash

  1. 壓縮與否能很大程度的節省你時間
  2. 不一樣加密算法也能產生很大的差異,如印象裏很是安全的chacha-20就是以複雜的算力成本爲代價的,經常使用簡單的aes-128-gcm在途中就是最省事最省時間的


測試-4 完整性校驗算法選擇

# 選擇不一樣的校驗證方法
sshpass -p "${REMOTE_PASS}" scp -C -c aes128-gcm <-o MACs some-methods> ${ARTIFACT} root@${REMOTE_IP}:${REMOTE_WORKDIR}複製代碼

關於完整性校驗證,默認狀況下scp使用的是hmac-md5算法。根據前兩個測試此次我默認
  啓用壓縮 + aes-128gcm加密算法 + 上傳一個二進制文件,來測試不一樣校驗方法之間的差別ssh

  • 在aes-128gcm下不一樣的校驗算法帶來的差異不會特別大,默認的hmac-md5算是配合的比較好的,能夠繼續使用此默認選項

相關文章
相關標籤/搜索