gnu 병렬 - 원격 서버를 기다리는 명령 속도 향상

gnu 병렬 - 원격 서버를 기다리는 명령 속도 향상

저는 gnu 병렬을 사용하여 pantheon.io의 약 1500개 웹사이트에 대한 백업을 생성하고 있습니다.터미널 명령줄 인터페이스. 명령 은 terminus backup:create원격 측에서 완료된 응답을 받은 후에만 완료됩니다. 이전 사이트가 완료되기를 기다리는 동안 더 많은 사이트를 백업할 수 있도록, 또는 그렇지 않은 경우 더 완벽하게 실행될 수 있도록 병렬화를 통해 작업 속도를 향상시킬 수 있는 방법이 있는지 궁금합니다. 있다면 Jenkins CI 작업에서 실행됩니다. 감사해요.

#!/bin/bash +x

backup_sites() {
  BACKUP=$(terminus backup:create "$*".live)
  echo "$*": "$BACKUP"
}

SITE_LIST=$(terminus site:list --field=name)

export -f backup_sites
echo "$SITE_LIST" | parallel backup_sites

답변1

병렬로 실행할 작업 수를 지정하지 않으면 기본값은 CPU 수입니다.

매뉴얼에서:

-제이

각 시스템의 작업 슬롯 수입니다. 최대 N개의 작업을 병렬로 실행합니다. 0은 가능한 한 많은 것을 의미합니다. 기본값은 100%이며, 각 머신의 각 CPU에서 하나의 작업을 실행합니다.

일반적으로 이것은 안전한 방법이지만 컴퓨팅이 아닌 네트워크를 기다리고 있습니다. 그래서 쉽게 수량을 늘릴 수 있습니다. -j 200을 시도해 보겠습니다. 그것은 잘 작동합니다. 이 매개변수를 조정하여 원하는 속도를 얻을 수 있습니다.

그래서 echo "$SITE_LIST" | parallel -j 200 backup_sites대신echo "$SITE_LIST" | parallel backup_sites

관련 정보