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.)