Skip to main content

Cluster Resource Sharing

Onehouse shares resources between Clusters to optimize resource consumption, enabling workloads from multiple Clusters to run on the same instances.

With Cluster resource sharing, strict Cluster-level isolation is maintained through control groups managed by Onehouse.

Cluster resource sharing helps reduce idle CPU, which occurs when resources are inefficiently allocated in a computing system, potentially causing suboptimal performance and underutilization. By bin-packing workloads from multiple clusters into the same shared instances, Onehouse reduces idle CPU and helps you achieve better performance at lower cost.

Example Scenario

To understand how Cluster sharing reduces idle CPU, we can look at a realistic example. Imagine you have 2 Onehouse Clusters, A and B. Cluster A is running a workload that requires 2 cores for processing, and Cluster B’s workload requires only 1 core. In this example, Onehouse is running on standard 4-core instances.

With Cluster sharing, both these workloads are bin-packed into a single instance, which is billed at 1 OCU per Hour. Without Cluster resource sharing, each Cluster would run on a separate instance, costing you 2 OCU per hour and leaving more CPU idle.

In both cases, there are some idle CPU, but Cluster resource sharing reduces the idle CPU and costs.

Impact on Billing

As explained above, Onehouse calculates OCU consumption for billing based on the number instances running in your account, not from any other utilization metrics.

The Onehouse console will show metrics for usage by each Cluster, which may be split across multiple instances under the hood. The overall OCU consumption is calculated from the total instances used by your project, which may be greater than the sum of each Cluster’s OCU usage.

The difference in these values is due to idle CPU, which still exist, but are reduced by the Cluster resource sharing. The idle CPU may be caused by a variety of factors such as instance spin-down time during downscaling or un-allocated CPU on a Cluster if a workload cannot be perfectly bin-packed.