GPU Quota Management: Reclaiming Idle GPUs

Set GPU quotas but still short on GPUs? Learn the limits of Kubernetes ResourceQuota, two-tier quota design, and how to auto-reclaim idle dev environments.
Amanda's avatar
Nov 09, 2026
GPU Quota Management: Reclaiming Idle GPUs
If you have split GPU quotas across teams and still keep hearing "there are no GPUs left," the cause is usually not the size of the quota. It is the gap between what is allocated and what is actually used.
A Jupyter notebook started on Friday afternoon holds a GPU until Monday. A dev environment from a finished experiment quietly sits on quota that nobody remembers. The dashboard shows every GPU as "allocated," yet almost no compute is happening. We call this ghost occupancy.
This post covers what a GPU quota is, where Kubernetes' built-in features fall short, quota design principles that work in practice, and how to reclaim idle resources automatically.
notion image

What Is a GPU Quota?

A GPU quota is a policy that sets the maximum GPU resources a team, project, or user can hold at the same time.
A quota only answers "how much can you use?" It does not answer "when do we get it back?" or "who goes first?" That is why a quota cannot do its job alone. It needs a reclaim policy and priorities alongside it.
Policy
Question it answers
What happens without it
Quota
How much can you use?
One team monopolizes the cluster
Reclaim
When do we get it back?
Unused resources keep holding quota
Priority
Who goes first?
Urgent jobs get stuck behind a long queue

Why Kubernetes ResourceQuota Alone Isn't Enough

Kubernetes can cap GPU usage per Namespace with ResourceQuota. In GPU operations, though, its limits show up quickly.
  • Whole-GPU limits only: It caps by GPU count, as in requests.nvidia.com/gpu: 4, so partitioned GPUs are hard to manage with quotas.
  • Namespace level only: Per-user limits inside a team require a separate design.
  • Fragmented resource combinations: Capping CPU, memory, and GPU separately leads to fragmentation, where GPUs are free but jobs can't start because CPU has run out.
  • No notion of time: Within the quota, nothing stops a resource from being held for days.

4 Principles for Designing GPU Quotas

  1. Decide the allocation unit first: Whole GPUs, partitioned blocks, or bundles of CPU, memory, and GPU. The quota number only means something once this is set.
  1. Use two tiers: A project cap keeps things fair between teams; a user cap stops one person from hogging within a team.
  1. Treat workload types differently: Dev environments, training, and serving use resources in different ways, so one rule should not fit all.
  1. Adjust every quarter using real usage data: Use usage reports to see which teams always max out their quota and which always leave some unused, then rebalance.
notion image
Workload type
Resource usage pattern
Quota guidance
Dev environment (Workspace)
Long-running, compute is sporadic
Keep it small, add a hold-time limit for automatic reclaim
Training and batch (Job)
Short, intense use, ends when done
Keep it large, manage run order with priorities
Serving (Operation)
Always on, varies with traffic
Guarantee a minimum plus headroom for autoscaling

3 Ways to Reclaim Idle Resources

Approach
How it works
Pros
Limits
Manual reclaim
Admins check on chat and ask users to shut down
No extra tooling
Admin burden, friction, slow
Time-based auto reclaim
Auto-pause once a hold-time limit is exceeded
Clear, predictable rules
Limits must be designed per workload
Utilization-based redistribution
Detects allocated-but-unused share and gives it to other jobs
Raises efficiency while keeping allocations
Needs platform support such as partitioning
The two automatic approaches complement each other rather than compete. Time-based reclaim cleans up forgotten environments; utilization-based redistribution puts to work resources that are on but underused.

How to Implement GPU Quotas and Reclaim with AIPub

TEN's AIPub provides quotas, reclaim, priorities, and usage tracking together through its FinOps Suite and its own scheduler.

ResourceSet: Allocate in Bundles

AIPub bundles CPU, memory, and GPU into a single unit called a ResourceSet. Sets are generated automatically by dividing each node's available resources evenly, which reduces fragmentation where GPUs are free but jobs can't start for lack of CPU. Combined with MIG or Block partitioning, you can create even smaller Sets, so Sets of different sizes coexist on the same GPU.

ResourceSet Quota and Storage Quota

Quotas apply at two levels, Project and User, and storage quotas are set separately. When a user requests a workload, AIPub checks permissions first, then validates the quota before allowing or denying the request.

Workspace Reclaim: Automatically Reclaim Forgotten Dev Environments

Workspace Reclaim limits how long each user's Workspace can hold resources, anywhere from 0 to 99,999 hours. Once the limit is exceeded, the Workspace is paused automatically and its resources are reclaimed. When the user resumes it, the timer resets. Admins no longer need to ask on chat, "Are you still using this?"
notion image

Dynamic Allocation and Priority Queue

In Block partitioning mode, Dynamic Allocation detects in real time the share of a container's allocated resources that is not being used and gives it to other containers. When a new workload arrives, it takes back what is needed and allocates it. For queued jobs, admins can reorder the Priority Queue or promote a job immediately, so urgent work isn't blocked by quota.
notion image

Use Usage Data to Tune Quotas

The Usage feature aggregates monthly usage based on each container's resource allocation time. You can view it by account or project and export it to Excel. Combined with automatic weekly and monthly reports, it gives you evidence each quarter for which teams always use their full quota and which leave it on the table.
When GPUs feel scarce, the first thing to look at is not the GPU count. It is how much capacity is allocated but unused. Set caps with quotas, get forgotten resources back with reclaim, and move urgent work forward with priorities, and the same GPUs can serve more teams.

Frequently Asked Questions (FAQ)

Q. What happens if quotas are set too small? Researchers wait longer, and teams start grabbing resources early just to secure their share. It is safer to start generous and tighten based on usage data.
Q. Does Workspace Reclaim stop training that is running? Workspace Reclaim applies to Workspaces used for development and debugging. Training should run as a Job that ends when it completes. It also helps to set an operating rule that Workspace work is saved to a volume or committed to an image.
Q. How do quotas relate to chargeback? A quota is a limit set in advance; chargeback allocates cost afterward. Usage data gives you the basis for both adjusting quotas and splitting costs.
Q. What if the quota is full and an urgent job comes in? Admins can move the job up in the priority queue, or use Dynamic Allocation to redistribute idle resources. Defining what counts as urgent in advance speeds up the call.
→ See how quotas and reclaim policies let more teams share the same GPUs. Explore AIPub 👉 Talk to us about GPU operating policies 👉

References

  • Kubernetes Documentation, Resource Quotas
  • TEN, AIPub Technical Document (2026.05)
Share article