Speed up the test suite with concurrent test runners #2894

Closed
opened 2017-07-26 14:23:41 +00:00 by exarkun · 3 comments

On travis-ci a test suite run seems to take about 18 minutes now. I don't think travis-ci provides more than a single core to each job but using trial's -j feature (=2) nevertheless appears to speed up the run to around 12 minutes. I suspect this is because the test suite spends a lot of time on I/O wait. Telling trial to run the suite spread across two processes therefore results in better CPU utilization and results in this speedup.

On travis-ci a test suite run seems to take about 18 minutes now. I don't think travis-ci provides more than a single core to each job but using trial's `-j` feature (=2) nevertheless appears to speed up the run to around 12 minutes. I suspect this is because the test suite spends a lot of time on I/O wait. Telling trial to run the suite spread across two processes therefore results in better CPU utilization and results in this speedup.
exarkun added the
dev-infrastructure
normal
enhancement
1.12.1
labels 2017-07-26 14:23:41 +00:00
exarkun added this to the undecided milestone 2017-07-26 14:23:41 +00:00
Author
(https://github.com/tahoe-lafs/tahoe-lafs/pull/431)
Author
warner reviewed and merged this. fixed in <https://github.com/tahoe-lafs/tahoe-lafs/commit/9429fb8fad312c1347341618c6805b1c82e48afe>
exarkun added the
fixed
label 2017-08-07 18:30:05 +00:00
Author

Note this PR didn't actually enable parallel test runs on CI because coverage collection is incompatible with trial's parallel test run feature. The PR only made it possible for users to manually invoke this feature on their local runs.

I've filed an upstream ticket, https://twistedmatrix.com/trac/ticket/9663, for implementing the behavior necessary to enable this on CI. It would be nice to do so since it will probably make the whole test suite take roughly half as long (perhaps 20 minutes down to 10 for one full CI job).

Note this PR didn't actually enable parallel test runs on CI because coverage collection is incompatible with trial's parallel test run feature. The PR only made it possible for users to manually invoke this feature on their local runs. I've filed an upstream ticket, <https://twistedmatrix.com/trac/ticket/9663>, for implementing the behavior necessary to enable this on CI. It would be nice to do so since it will probably make the whole test suite take roughly half as long (perhaps 20 minutes down to 10 for one full CI job).
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Reference: tahoe-lafs/trac-2024-07-25#2894
No description provided.