Splunk Search

The maximum number of concurrent historical scheduled searches on this instance has been reached

Explorer

I often see the below entries in the scheduler.log[1] which are getting skipped. We have 15 alerts set in which 2 run every minute, 8 run every 5 minutes and the rest every hour. Because of the concurrency limit, the status is getting skipped and the alerts are not getting triggered.

The concurrency limit is set to five based on the below log.
We are using a 4 core CPU and according to the limits.conf, shouldnt the limit be 10 concurrent searches(6+4*1)?

How to avoid the alerts from getting skipped?

[1]

02-01-2019 13:35:00.283 -0600 INFO SavedSplunker - savedsearchid="nobody;search;JBoss7 STUCK Thread Alert", searchtype="scheduled", user="350961", app="search", savedsearchname="JBoss7 STUCK Thread Alert", priority=default, status=skipped, reason="The maximum number of concurrent historical scheduled searches on this instance has been reached", concurrencycategory="historicalscheduled", concurrencycontext="saved-searchinstance-wide", **concurrencylimit=5, scheduledtime=1549049640, windowtime=0
02-01-2019 13:35:00.284 -0600 INFO SavedSplunker - savedsearchid="nobody;search;JBoss7 OutOfMemory Alert", searchtype="scheduled", user="329421", app="search", savedsearchname="JBoss7 OutOfMemory Alert", priority=default, status=skipped, reason="The maximum number of concurrent historical scheduled searches on this instance has been reached", concurrencycategory="historicalscheduled", concurrencycontext="saved-searchinstance-wide", **concurrencylimit=5
, scheduledtime=1549049640, windowtime=0

SplunkTrust
SplunkTrust

Within the current constraint of hardware, you could try the following:

  1. look at home much time each of the alert/search is taking [ using job inspector] and fine tune them to reduce the search time.
  2. look at spreading the searches, e.g. instead of running every hour, run some searches 10mins past the hour, some 20mins past the hours etc..
  3. re-evaluate if you really need to run search every 2mins and what's the earliest and latest time and see if you can reduce the time period.
0 Karma

Explorer

Thank you for your reply.

Do you know why the concurrency limit is 5

From the documentation, isnt it supposed to be 10. 6 + (4*1)

basemaxsearches + #cpus*maxsearchesper_cpu

The base number of concurrent searches.

basemaxsearches = 6

Max real-time searches = maxrtsearch_multiplier x max historical searches.

maxrtsearch_multiplier = 1

The maximum number of concurrent searches per CPU.

maxsearchesper_cpu = 1

0 Karma

Explorer

The default value of maxsearchesperc in the scheduler stanza of the limits.conf file is 50 (as in 50%).

This is the maximum number of searches the scheduler can run, as a percentage of the maximum number of concurrent searches.

50% of 10 is 5.

0 Karma