Github ActionsのFTP Deployが遅い問題を解決する

問題

Github ActionsでFTP Deployの「SamKirkland/FTP-Deploy-Action」において、ファイルのアップロードが遅い問題が発生することがあります。

原因

原因は、「SamKirkland/FTP-Deploy-Action」では、デフォルトの同時接続数が1つとなっており、1コネクションでファイルをアップロードするためです。

特にアップロードするファイル数が多い場合にこの問題が発生しやすいです。

Github上で意図的に速度制限などがかかっているわけではありません。(最初はそれを疑って調べていました)

対策

この対策は、同時接続数を増やす必要があります。

workflowのARGSにてparallel(同時接続数)オプションを付けると解決します。値はサーバー側の同時接続可能数に合わせること。

また、「SamKirkland/FTP-Deploy-Action」のバージョンは2.0.0とする必要があります。現時点での最新の4.x系ではARGSが使用できなくなっていました。

この設定を行うと、FTPの同時接続を使用できるようになります。

      - name: FTP-Deploy-Action
        uses: SamKirkland/FTP-Deploy-Action@2.0.0
        env:
          FTP_SERVER: ${{ secrets.FTP_SERVER }}
          FTP_USERNAME: ${{ secrets.FTP_USERNAME }}
          FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }}
          LOCAL_DIR: build
          REMOTE_DIR: /
          ARGS: --delete --parallel=10	# ARGSでparallelを設定する

結果

その結果、1時間23分ほどかかっていたアップロード時間が、12分程度まで短縮されました。

時間差にして、約1/7も短縮となったので驚きの効果です。

Before:

After:

サーバーがより多くの同時接続数をサポートしているなら、さらに増やしても良いかもしれなません。

コメント

タイトルとURLをコピーしました