Memory and stats search performance
A pair of limits.conf
settings strike a balance between the performance of the stats
family of search commands and the amount of memory they use during the search process, in RAM and on disk. If your stats
, sistats
, geostats
, tstats
, or mstats
searches are consistently slow to complete, you can adjust these settings to improve their performance, but at the cost of increased search-time memory usage, which can lead to search failures.
When you run a stats
search, the search head returns batches of results until the search result set is complete. The max_mem_usage_mb
setting in the [default]
stanza of limits.conf
limits the amount of memory (RAM) that a batch of search results can take up during the stats
search process. Its default setting is 200 MB. Lower limits to max_mem_usage_mb
can cause a search to be slower to complete, but there should be no loss of results.
The stats
command processor spills data from RAM to disk when the amount of RAM that the batch is estimated to use exceeds max_mem_usage_mb
. Do not set max_mem_usage_mb=0
as this removes the bounds to the amount of memory a batch can use.
If you run a lot of high cardinality stats
searches (searches that must match, filter, and aggregate extremely large numbers of discrete field values), consider reducing max_keymap_rows
to improve their performance. This setting in the [stats | sistats]
stanza of limits.conf
limits the number of result rows that the stats
search processor can store in the key map during the mapping phase of the map-reduce operation in a stats
search. The stats
search processor stores expunged result rows in memory, subject to the max_mem_usage_mb
setting.
The eventstats
and streamstats
commands also use these settings, but in a slightly different way.
For more information, see the topics for eventstats
and streamstats
in the Search Reference.
- Splunk Cloud Platform
- To change these limitations, request help from Splunk Support. If you have a support contract, file a new case using the Splunk Support Portal at Support and Services. Otherwise, contact Splunk Customer Support.
- Splunk Enterprise
- Prerequisites
- Only users with file system access, such as system administrators, can increase the
max_mem_usage_mb
andmax_keymap_rows
settings using configuration files. - Review the steps in How to edit a configuration file in the Splunk Enterprise Admin Manual.
- Only users with file system access, such as system administrators, can increase the
Never change or copy the configuration files in the default directory. The files in the default directory must remain intact and in their original location. Make the changes in the local directory.
- Steps
- Open the local
limits.conf
file for the Search app. For example,$SPLUNK_HOME/etc/apps/<app_name>/local
. - Under the [default] stanza, set
max_mem_usage_mb
to the value you want to use. - Under the [stats | sistats] stanza, set
max_keymap_rows
to the value you want to use.
Add sparklines to search results | About advanced statistics |
This documentation applies to the following versions of Splunk® Enterprise: 8.2.0, 8.2.1, 8.2.2, 8.2.3, 8.2.4, 8.2.5, 8.2.6, 8.2.7, 8.2.8, 8.2.9, 8.2.10, 8.2.11, 8.2.12, 9.0.0, 9.0.1, 9.0.2, 9.0.3, 9.0.4, 9.0.5, 9.0.6, 9.0.7, 9.0.8, 9.0.9, 9.0.10, 9.1.0, 9.1.1, 9.1.2, 9.1.3, 9.1.4, 9.1.5, 9.1.6, 9.1.7, 9.2.0, 9.2.1, 9.2.2, 9.2.3, 9.2.4, 9.3.0, 9.3.1, 9.3.2, 9.4.0
Feedback submitted, thanks!