Unverified Commit 0365f3cf authored by Sergey Pepyakin's avatar Sergey Pepyakin Committed by GitHub
Browse files

Limit the number of PVF workers (#4273)

* Limit the number of PVF workers

In particular, limit the number of preparation workers to 1 (soft &
hard) and limit the number of execution workers to 2.

The reason why we are doing this is that it seems many workers launched
at the same time can cause problems. I.e. if there are more than 2
preparation workers, the time for preparation rises significantly to the
point of reaching the timeout.

This was mostly observed with parallel_compilation=true, so each worker
used `numcpu` threads and now we are looking to flip that parameter to
`false`. That said, we want to err on the safe side here and gradually
enable it later if our measurements show that we can do that safely.

* Adjust the test to accomodate the changed config value
parent e0f4df5a
Pipeline #165829 passed with stages
in 47 minutes and 24 seconds
......@@ -128,11 +128,11 @@ impl Config {
cache_path,
prepare_worker_program_path: program_path.clone(),
prepare_worker_spawn_timeout: Duration::from_secs(3),
prepare_workers_soft_max_num: 8,
prepare_workers_hard_max_num: 5,
prepare_workers_soft_max_num: 1,
prepare_workers_hard_max_num: 1,
execute_worker_program_path: program_path,
execute_worker_spawn_timeout: Duration::from_secs(3),
execute_workers_max_num: 5,
execute_workers_max_num: 2,
}
}
}
......
......@@ -135,7 +135,7 @@ async fn parallel_execution() {
#[async_std::test]
async fn execute_queue_doesnt_stall_if_workers_died() {
let host = TestHost::new_with_config(|cfg| {
assert_eq!(cfg.execute_workers_max_num, 5);
cfg.execute_workers_max_num = 5;
});
// Here we spawn 8 validation jobs for the `halt` PVF and share those between 5 workers. The
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment