Community Blog
Get the latest updates on the Splunk Community, including member experiences, product education, events, and more!

Best Practices: Splunk auto adjust pipeline queue

hrawat
Splunk Employee
Splunk Employee

When you enable autoAdjustQueue in Splunk, maxSize should be understood as the queue size Splunk starts with before automatic scaling takes over. It is not a memory guard rail and it is not the final limit Splunk can use when the feature is active.

With autoAdjustQueue = true, Splunk begins auto scaling only after the configured queue size is full. In other words, maxSize acts as the minimum starting size for the queue. Once the queue reaches that size, Splunk can adjust the queue dynamically based on runtime conditions.

Core guidance: If you enable autoAdjustQueue, set maxSize to a reasonable minimum starting size. A common practical range is 10MB to 100MB. This gives the queue enough initial capacity while still allowing Splunk to scale it automatically when the queue becomes full.

Why an oversized maxSize is a bad idea

Consider this configuration:

[queue]
maxSize = 500GB
autoAdjustQueue = true
 

Since maxSize is the minimum starting size when autoAdjustQueue = true, Splunk will attempt to use a 500GB queue from the start, before automatic scaling has any useful role to play.

Automatic scaling only becomes relevant after the configured queue size is full. With a 500GB starting point, the queue may never fill under normal workloads, which means:

  1. autoAdjustQueue becomes effectively useless because the precondition for scaling is never reached.

  2. There is a real risk of out-of-memory pressure if the host cannot support such a large queue allocation.

  3. If the queue does fill at 500GB, automatic scaling may attempt to grow it further, increasing memory pressure instead of protecting the instance.

Bottom line: A massive hard-coded maxSize defeats the purpose of autoAdjustQueue. Use a practical starting size, such as 10MB to 100MB, and let splunkd scale the queue based on actual runtime conditions.

Why maxSize is not the memory guard rail

A common misunderstanding is to treat maxSize as the maximum amount of memory the queue can ever consume. That interpretation is misleading when autoAdjustQueue is enabled.

In this mode, maxSize defines the point at which automatic queue adjustment begins. If the queue does not fill, Splunk has no reason to grow it. Once the queue reaches the configured size, splunkd can start increasing the queue size dynamically.

Consider this example:

[queue] maxSize = 50MB
autoAdjustQueue = true
 

In this configuration, the queue starts with a 50MB size. When that queue fills, autoAdjustQueue allows Splunk to scale the queue beyond that starting point as needed.

Important: Do not describe maxSize as the safety ceiling when autoAdjustQueue is enabled. It is better described as the minimum configured queue size that triggers automatic scaling once full.

What autoAdjustQueue is supposed to do

autoAdjustQueue helps Splunk respond to queue pressure dynamically. Instead of relying only on a fixed queue size chosen in advance, Splunk can expand queue capacity when the configured queue becomes full.

That means the right approach is to:

  • Enable autoAdjustQueue when you want Splunk to manage queue growth dynamically

  • Set maxSize as a practical minimum starting size, not as a memory cap

  • Allow splunkd to scale the queue after the configured size is reached

Good queue tuning is not about using maxSize as a memory protection boundary. It is about choosing a sensible starting size and letting Splunk scale when queue pressure requires it.

Recommended maxSize range

A practical best practice is to keep maxSize between 10MB and 100MB when autoAdjustQueue is enabled.

This range works well because it provides:

  • A reasonable starting point: The queue has enough space for normal buffering before auto scaling is needed

  • Predictable behavior: Auto scaling begins only when the configured queue becomes full

  • Operational simplicity: Administrators do not need to over-size queues manually in an attempt to handle every possible spike

Best practice: Start with a conservative maxSize in the 10MB to 100MB range and let splunkd grow the queue automatically after that configured size fills.

Recommended configuration pattern

 
 

Approach

Example

Expected behavior

Recommended

maxSize = 50MB
autoAdjustQueue = true

Queue starts at 50MB and can auto scale after it becomes full

Acceptable

maxSize = 100MB
autoAdjustQueue = true

Queue starts at a larger, still reasonable size before automatic scaling begins

Usually unnecessary

maxSize = 500GB
autoAdjustQueue = true

Creates an extremely large initial queue target and delays the point at which auto scaling behavior becomes relevant

 

Practical takeaway

If you use autoAdjustQueue, configure maxSize as the minimum queue size you want Splunk to fill before automatic scaling begins. Avoid framing it as a memory guard rail, because that is not how the setting behaves in this configuration.

The short version:

  • maxSize is the minimum configured queue size when autoAdjustQueue = true

  • Auto scaling starts once the queue reaches that configured size

  • Use 10MB to 100MB as a practical starting range

  • Let splunkd scale the queue dynamically after it becomes full

Bottom line: With autoAdjustQueue = true, maxSize should be treated as the queue’s minimum starting size. Auto scaling begins once that queue is full.

Contributors
Get Updates on the Splunk Community!

Announcing Modern Navigation: A New Era of Splunk User Experience

We are excited to introduce the Modern Navigation feature in the Splunk Platform, available to both cloud and ...

Best Practices: Splunk auto adjust pipeline queue

When you enable autoAdjustQueue in Splunk, maxSize should be understood as the queue size Splunk starts with ...

Request for Professional Development: Attending .conf26

Winning Over the Boss: Your Pass to .conf26 conf26 is going to be here before you know it. If don't already ...