GNU Parallel pour accélérer vos process sous Linux

Soit un fichier avec 1000 urls à curler pour en connaitre la réponse HTTP seulement (le header seulement seulement pas le body)

time while read -r line;
do curl --head -k -s $line|grep HTTP;
done < url.txt


time while read -r line;
do parallel -I% --max-args 1 curl --head -k -s $line|grep HTTP;
done < url.txt


time while read -r line;
do parallel --jobs 5 -I% --max-args 1 curl --head -k -s $line|grep HTTP;
done < url.txt

Experimentation avec l’augmentation du nombre de jobs

Un paramètre intéressant à jouer avec est le nombre de jobs. Pour 1000 urls à checker le header HTTP, voici les temps :

  • Sans parallel : 1m57s
  • Avec Parallel par défaut : 42s
  • Avec Parallel --jobs 5 : 32s
  • Avec Parallel --jobs 10 : 23s

Il suffit de trouver le meilleur compromis (pas de proportionnalité entre le gain et le nombre de jobs.)

Vous aimerez aussi...