[swarming] Add a flag to specify the number of workers

This CL add a flag to configure number of workers downloading isolated files.
By using higher number of workers, we can speed up task collection.

If I run collect for webkit_layout_tests like below, this CL can make collection 3.5x faster.

$ curl https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8930326331824041104/+/steps/test_pre_run/0/steps/s__trigger__webkit_layout_tests__with_patch_/0/logs/json.output/0 | \
  jq '.tasks | to_entries | {"tasks": map(.value | {task_id})}' > go.json

$ time swarming collect -verbose -server chromium-swarm.appspot.com -task-output-stdout=none -output-dir tmp -requests-json go.json
real    2m37.923s
user    1m1.154s
sys     0m16.165s

$ time swarming collect -verbose -server chromium-swarm.appspot.com -task-output-stdout=none -output-dir tmp -requests-json go.json -worker 50
real    0m45.445s
user    1m12.472s
sys     0m22.671s

Bug: 894045, 868878
Change-Id: I796025bb438f35d5cb6d660417013d890ed385f7
Reviewed-on: https://chromium-review.googlesource.com/c/1329382
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
1 file changed
tree: 9b6984d465e02ec662a70f653d648ece5f3066f0
  1. appengine/
  2. auth/
  3. buildbucket/
  4. cipd/
  5. client/
  6. common/
  7. config/
  8. dm/
  9. examples/
  10. gce/
  11. grpc/
  12. hardcoded/
  13. infra/
  14. logdog/
  15. luci_notify/
  16. lucictx/
  17. machine-db/
  18. milo/
  19. mmutex/
  20. mp/
  21. scheduler/
  22. scripts/
  23. server/
  24. skylark/
  25. tokenserver/
  26. tools/
  27. tumble/
  28. vpython/
  29. web/
  30. .travis.yml
  31. AUTHORS
  32. codereview.settings
  33. CONTRIBUTING.md
  34. CONTRIBUTORS
  35. LICENSE
  36. OWNERS
  37. pre-commit-go.yml
  38. PRESUBMIT.py
  39. README.md
README.md

luci-go: LUCI services and tools in Go

GoDoc

Installing

LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:

fetch infra
cd infra/go
eval `./env.py`
cd src/go.chromium.org/luci

Contributing

Contributing uses the same flow as Chromium contributions.