hashicorp / hashicorp/nomad

`qemu` doesn't support NUMA-aware scheduling

Open
#19,090 0 comments 1 reaction 0 assignees View on GitHub
hcc/jira theme/driver/qemu theme/enterprise type/bug
Dominant language
Go
Stars
17k
Forks
2.1k
Avg merge
1d 9h
Merged PRs (30d)
105

Description

As noted in https://github.com/hashicorp/nomad/pull/19089, the `qemu` driver uses our universal executor to run the QEMU command line tool. Because QEMU owns the resource isolation, we don't pass in the resource block that the universal executor uses to configure cgroups and core pinning. This prevents NUMA-aware scheduling from working properly for the `qemu` driver (as of the Nomad 1.7.0 beta).

We currently support `cores` by mapping that to a `-smp` flag. It looks like QEMU supports NUMA-awareness with the `-numa` flag, so we should be able to map Nomad's NUMA-aware scheduling to the appropriate flags too.

Ref: https://hashicorp.atlassian.net/browse/NET-10928

Contributor guide

No contributing guide indexed for this repository

Research direction

Locate the qemu driver and its use of the universal executor, then trace how Nomad's cores setting is mapped to QEMU's -smp flag. Determine the corresponding NUMA-aware scheduling inputs and verify that they are mapped to appropriate -numa flags without relying on the executor's cgroup or core-pinning resource block.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.