-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Add resource profiles to nemoclaw onboard and nemoclaw resources command #3336
Copy link
Copy link
Closed
Copy link
Labels
area: cliCommand line interface, flags, terminal UX, or outputCommand line interface, flags, terminal UX, or outputarea: inferenceInference routing, serving, model selection, or outputsInference routing, serving, model selection, or outputsarea: sandboxOpenShell sandbox lifecycle, runtime, config, or recoveryOpenShell sandbox lifecycle, runtime, config, or recoveryplatform: dgx-sparkAffects DGX Spark hardware or workflowsAffects DGX Spark hardware or workflows
Description
Activity
Metadata
Metadata
Assignees
Labels
area: cliCommand line interface, flags, terminal UX, or outputCommand line interface, flags, terminal UX, or outputarea: inferenceInference routing, serving, model selection, or outputsInference routing, serving, model selection, or outputsarea: sandboxOpenShell sandbox lifecycle, runtime, config, or recoveryOpenShell sandbox lifecycle, runtime, config, or recoveryplatform: dgx-sparkAffects DGX Spark hardware or workflowsAffects DGX Spark hardware or workflows
Problem Statement
Summary
Add percentage-based CPU/RAM resource profiles to
nemoclaw onboardand a newnemoclaw resourcescommand for hardware inventory. Resource limits are applied to sandbox pods via OpenShell's--cpu-request/--cpu-limit/--memory-request/--memory-limitflags (OpenShell PR #1063).Motivation
Currently, sandbox pods run with default K8s resource allocations (BestEffort QoS). On shared machines (DGX Spark, laptops running other workloads), this leads to:
Proposed Design
Proposed Changes
1.
nemoclaw resourcescommand (hardware inventory)--jsonoutput for scripting2. Resource profile integration in
nemoclaw onboardNEMOCLAW_RESOURCE_PROFILE,NEMOCLAW_CPU_LIMIT, etc.3. Blueprint schema update
resource_profilessection inblueprint.yamlwith percentage-based patterns (e.g.,cpu_limit: "25%")Testing
Verified end-to-end on cgroup v2:
resources.requests.cpu=5, resources.limits.cpu=11, resources.requests.memory=7Gi, resources.limits.memory=15Gicpu.max=1100000/100000(11 cores),memory.max=16106127360(15Gi)Dependencies
--cpu-request/--cpu-limit/--memory-request/--memory-limitflags toopenshell sandbox createScope
This is PR 1/2. A follow-up PR will add:
nemoclaw <sandbox> resize(live resource adjustment)nemoclaw <sandbox> verify(cgroup validation)Alternatives Considered
No response
Category
enhancement: feature
Checklist