問題
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:
サーバーがより多くの同時接続数をサポートしているなら、さらに増やしても良いかもしれなません。
コメント