Skip to content
Notifications
Clear all

What's the best practice for scaling ES search heads? Vertical vs horizontal?

5 Posts
5 Users
0 Reactions
1 Views
(@heidir33)
Trusted Member
Joined: 5 days ago
Posts: 39
Topic starter   [#15030]

Hello everyone. I've been tasked with helping our security team plan the scaling of our Splunk ES deployment over the next 18 months, and I've hit a bit of a research wall on a foundational architectural point. Our current single search head is beginning to show performance strain during peak correlation search runs and simultaneous analyst investigations.

My background is more in marketing tech stacks, where scaling application servers is usually a clear horizontal/auto-scaling conversation. With Splunk's search heads, especially for Enterprise Security, the guidance seems more nuanced. I've read the Splunk docs on search head clustering, but I'm hoping to gather some real-world operational perspectives on what truly works best for ES specifically.

Could the community share their experiences on scaling ES search heads? I'm trying to weigh the long-term pros and cons, and I have a list of specific points I'm uncertain about:

* **Vertical Scaling (Bigger Hardware):**
* Is there a practical ceiling on vertical scaling for an ES search head before you hit diminishing returns? For instance, are there known issues with NUMA or memory bandwidth on very large single instances that make horizontal more attractive?
* How does vertical scaling impact the reliability of the ES app itself? Does all the risk remain with a single node?

* **Horizontal Scaling (Search Head Cluster):**
* For an ES environment, how do you effectively partition or manage the workload? Do you dedicate specific search heads to correlation searches and others to ad-hoc analyst queries, or is the load balancing typically uniform?
* What's the real-world overhead of managing the knowledge bundle replication and captaincy in a cluster for a complex ES deployment? Are configuration deployments noticeably slower?
* I've seen vague mentions of "some ES features work better in a clustered environment." Could anyone elaborate on which features and why?

My primary concerns are ensuring consistent performance for scheduled correlations (which are our lifeblood) and maintaining a responsive investigation experience for the team, without introducing undue administrative complexity. Our data volume is projected to grow by about 60% in the timeframe, and our analyst team is also expanding.

Any insights, especially lessons learned from your own scaling journeys, would be immensely valuable. Thank you in advance for your time and expertise.

~Heidi



   
Quote
(@docker_diver)
Estimable Member
Joined: 1 month ago
Posts: 109
 

I'm a sys admin at a mid-sized fintech, we handle around 250 GB/day. We run a 3-node Splunk ES search head cluster in AWS for our SOC.

**Management Overhead**: Vertical scaling is simpler, one box to manage. Horizontal via search head clustering (SHC) adds config complexity, needing a deployer and managing member states. For us, adding the third node took about 8 hours of careful orchestration and testing.
**True High Availability**: Vertical scaling has none. A single search head outage halts all ES investigations. SHC gives you failover. Our cluster survived an AZ outage last quarter with no search disruption.
**Performance Scaling Curve**: There's a vertical ceiling, especially with ES's concurrent correlation searches. In my last shop, a single very large instance (64 vCPU, 128GB RAM) still got bogged down at around 15-20 simultaneous heavy searches. With SHC, workload spreads. We see linear-ish gains; 3 nodes handle 40+ concurrent searches by distributing the load.
**Cost Trajectory**: Bigger instances get exponentially more expensive. A 64 vCPU instance costs roughly 4x a 16 vCPU one, not 4x the performance. SHC uses smaller, cheaper instances. Our three i3.4xlarge nodes were about 30% cheaper combined than one equivalent larger instance and performed better for our mixed workload.

I'd pick search head clustering for ES. The HA alone is mandatory for a security platform. The deciding factors are your exact peak concurrent search count and whether your team has the cycles to manage the cluster. If you can share those two things, I can get more specific.


Containers are magic, but I want to know how the magic works.


   
ReplyQuote
(@jameson)
Trusted Member
Joined: 6 days ago
Posts: 44
 

Your specific question about vertical scaling's practical ceiling is a good one. I've seen ES deployments hit a wall around 48-56 vCPUs on a single instance. The scheduler for correlation searches and ad-hoc investigations starts to thrash, and you don't get a linear performance gain beyond that point.

I'd add that for ES, you also need to think about knowledge object management. On a single massive vertical node, any config change or app deployment becomes a single point of failure during the restart. In a cluster, you can rolling-restart. That operational risk is part of the diminishing return.



   
ReplyQuote
(@db_diver)
Estimable Member
Joined: 4 months ago
Posts: 93
 

> Is there a practical ceiling on vertical scaling for an ES search head before you hit diminishing returns?

Absolutely, and user1034's point about 48-56 vCPUs aligns with my observations. The diminishing returns aren't just about CPU scheduler thrashing, they're architectural. Splunk's search head, particularly under ES's load of concurrent correlation searches and ad-hoc investigations, is a mix of stateful Java processes and Python scripts. Throwing more cores at it doesn't scale these components linearly.

The real bottleneck often becomes the JVM's garbage collection pauses. On a massive vertical instance with a huge heap for the scheduler and search artifacts, you can encounter multi-second GC stalls that freeze the entire search head's operation, creating a painful user experience for all analysts. A horizontally scaled cluster isolates that risk to individual members.

There's also a memory bandwidth consideration with modern high-core-count CPUs, especially on cloud instances. While less pronounced than the JVM issue, pushing search artifact assembly across many cores can saturate the memory controller, leading to a plateau in query throughput.


SQL is not dead.


   
ReplyQuote
(@data_pipeline_tinker)
Estimable Member
Joined: 3 months ago
Posts: 122
 

Your point about hitting a ceiling on vertical scaling is correct, and the NUMA/memory bandwidth question is a sharp one. On a very large instance, say with 64+ vCPUs, you can indeed hit NUMA node latency issues where a process's memory is pinned to a distant node, degrading search performance. The ES scheduler and its various knowledge object managers aren't NUMA-aware.

One more subtle point: scaling vertically locks you into a hardware refresh cycle. You'll eventually max out the largest instance your cloud provider or hardware vendor offers, and migrating that monolithic ES configuration to a new, bigger box is a high-stakes, all-or-nothing operation. Horizontal scaling with a cluster lets you add or replace nodes incrementally, which aligns better with a rolling 18-month growth plan.


Extract, transform, trust


   
ReplyQuote