MaxMyCloud logo

Warehouse Utilization

Purpose

This section provides guidance on how to use the Warehouse Utilization page to optimize Snowflake compute costs.

Background

While Snowflake operates on a pay-as-you-go model, and warehouses automatically suspend when idle, there is still a window between query completion and warehouse shutdown during which compute charges continue to accrue. This is referred to as idle cost—a period where a warehouse is running but not actively executing queries.

Idle cost isn’t inherently wasteful—it’s sometimes necessary to avoid the performance overhead of frequent suspensions and resumptions. However, excessive idle time represents a cost optimization opportunity.

In a well-managed, enterprise-scale Snowflake environment, idle cost should ideally be well under 5% of total Snowflake compute cost. In the real-world example below, idle accounts for 13.3% of total cost—translating to a potential annual savings of $340K (based on $4M total spend).

Understanding the Charts

From the top navigation, Navigate to Compute → Warehouse Utilization. This page displays multiple interactive charts and tables that provide insights into Warehouse Utilizaton.

Warehouse Utilization Chart

1. Top Summary Metrics – System-Level Snapshot

The top of the page displays key metrics to give you a quick overview of warehouse efficiency in your Snowflake Account:

  • Idle Cost: Cost incurred while warehouses are active but not processing queries.
  • Idle %: Idle cost as a percentage of total compute cost (e.g., 13.35%).
  • Average Load: Average number of concurrently running queries.

Use these metrics to quickly assess system-wide efficiency and determine whether further investigation is warranted.

2. Idle vs. Total Cost Scatter Plot – Identify Problem Areas

This visualization allows you to isolate warehouses with high idle inefficiency:

  • Each dot represents an individual warehouse.
  • X-axis: Total Warehouse cost.
  • Y-axis: Corresponding Idle cost.
  • The slope line shows the average idle percentage across your account.
  • Warehouses above the slope are operating with above-average idle cost—these are prime candidates for optimization.

3. Warehouse Utilization Table – Diagnose and Take Action

After identifying problem warehouses, the table below provides granular metrics to guide tuning efforts. For example:

  • warehouse_30 shows 57% idle time ,largely due to a 600-second auto-suspend setting.
  • 95% of its queries finish in 2.3 seconds, yet it uses a 2X-Large warehouse—indicating it is oversized.

The Idle vs. Total Cost chart highlights which warehouses to focus on, while the Utilization Table provides the diagnostic insight to guide remediation.

Reducing Idle Cost – Recommendations

This is not an exhaustive list, but here are high-impact areas to consider:

  1. Lower Auto-Suspend Timeout
    • Set auto-suspend to 60 seconds in most cases.
    • Snowflake’s default is often too high, and resume latency or memory cache usually negligible. Cost benefits significantly outweigh the performance tradeoff.
  2. Balance Workload Across Departments
    • Many organizations assign dedicated warehouses per department to simplify chargeback.
    • However, this can lead to sparse, underutilized compute and drive up total cost.

    MaxMyCloud supports query-level cost attribution for accurate departmental billing. This eliminates the need for dedicated warehouses, preserves accountability, and helps reduce idle warehouse costs.

    For more details on setting up departments and budgets, click here.

  3. Right-Size Warehouses
    • Use the warehouse utilization table to assess workload characteristics.
    • For example, If 95% of queries finish quickly within 2 seconds on a 2x-large warehouse, consider scaling down.

    When managing workloads—especially batch processing jobs with large fluctuations in resource demand— consider using the Warehouse Scheduler to dynamically adjust warehouse size and other configurations.

  4. Manually Suspend Warehouses When Needed
    • Integrate warehouse suspension logic into ETL tools or pipelines.
    • Suspend warehouses programmatically after job completion to prevent idle drift.