mirror of
https://github.com/apache/impala.git
synced 2025-12-19 18:12:08 -05:00
Speed up default configuration for Docker-based tests
Docker-based parallelized test runs have proven themselves to be quite a bit faster than regular core or exhaustive mode builds. While regular sequential builds have also enjoyed shorter runtimes recently, Docker-based parallel builds still enjoy a speed advantage. Scheduling the parallel build segments is currently driven from the test driver script test-with-docker.py, and the order in which the segments are considered is currently hard-coded. The ordering was originally devised experimentally, by timing several test runs, then ordering the test segments based on expected duration, from longest to shortest. The average wall-clock run times for various test segments have changed since this original ordering was committed: FE tests have gotten significantly longer, while upgrading the default worker instance type cut shortened the serial phase(s) of E2E tests. This patch makes two changes to achieve a shorter overall run time for the Docker-based tests: 1. Reorders the default scheduling order of the test segments, based on currently measured durations 2. Increases the default suite concurrency for execution hosts: bumps suite concurrency from 4 to 5 for machines with memory sizes between 96 and 140 GBs (the currently used worker size) The latter change is also based on measurements: memory usage reports for total peak memory (RSS) and peak memory (RSS) per test segment both showed significant amounts of unused memory on the current default worker instance size (having 32 CPUs and 128 GB of RAM). Experiments showed that this machine size can reliable handle five concurrent containerized test sessions with some safety margin remaining, so the patch increases the default concurrency for this machine category. with both changes applied the duration of a core-mode test run with default settings is reduced from 2h45 to 2h25 (on average). Tested by running the Docker-based default test suite in core mode, with Ubuntu 16.04 and Rocky Linux 8.5 base images. Change-Id: Ifb609bcfb10e9f9b281cc6b375c36c9638db168b Reviewed-on: http://gerrit.cloudera.org:8080/19038 Reviewed-by: Michael Smith <michael.smith@cloudera.com> Reviewed-by: Joe McDonnell <joemcdonnell@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
This commit is contained in:
committed by
Joe McDonnell
parent
0a711cd5cb
commit
68650057a1
@@ -255,7 +255,7 @@ def _compute_defaults():
|
||||
memlimit_gb = 11
|
||||
parallel_test_concurrency = min(cpus, 12)
|
||||
elif total_memory_gb >= 95:
|
||||
suite_concurrency = 4
|
||||
suite_concurrency = 5
|
||||
memlimit_gb = 11
|
||||
parallel_test_concurrency = min(cpus, 12)
|
||||
elif total_memory_gb >= 65:
|
||||
@@ -350,10 +350,10 @@ cluster_test_exhaustive = cluster_test.exhaustive()
|
||||
# Default supported suites. These are organized slowest-to-fastest, so that,
|
||||
# when parallelism is limited, the total time is least impacted.
|
||||
DEFAULT_SUITES = [
|
||||
ee_test_serial,
|
||||
ee_test_parallel,
|
||||
cluster_test,
|
||||
Suite("FE_TEST"),
|
||||
ee_test_parallel,
|
||||
ee_test_serial,
|
||||
Suite("BE_TEST"),
|
||||
Suite("JDBC_TEST")
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user