Tableau Server Search and Browse

The Search & Browse process, based on Apache SOLR and also known as searchserver, handles fast search, filter, retrieval, and display of content metadata on the server. To configure high availability for the Search & Browse process, configure the process on multiple nodes.

Process

Search & Browse

Status Status of the Search & Browse process is visible on the Status Page. For more information, see View Server Process Status
Logging Logs generated by the Search & Browse process are located in /var/opt/tableau/tableau_server/data/tabsvc/logs/searchserver. For more information, see Server Log File Locations in the Ziplog Archive

What happens if a Search & Browse process fails? Users can still sign in to Tableau Server, but workbook content will appear to be missing. The content is not actually missing. Rather, the content is not being returned in the search results; it will be displayed again after the Search and Browse process restarts.

If more than one Search & Browse process is configured and running on multiple nodes when the failure occurs, requests made to a failed Search & Browse process will also fail, but subsequent requests will be routed to working Search & Browse processes. Each Search & Browse process indexes across all nodes in the cluster, therefore if all but one Search & Browse process fails, results will still be returned across all nodes.

Tuning the Search & Browse Process

There are several ways you can change how the Search & Browse process works in Tableau Server. In most cases you should not need to change anything, but here are some configuration changes you can make.

Search & Browse Max Heap Memory

You can configure Search & Browse options using the searchserver.javamemopts configuration key. The most important setting you can configure is the one controlling how large the maximum heap memory should be and specified by the -Xmx option. By default this is set by Tableau, based on the available physical memory for the server node running the Search & Browse service. The value should be set as high as possible, based on available physical memory and memory usage, but no higher than 24 GB.

When changing the amount of max heap memory, you need to take into account any other services on the system. If you're running low on memory on the computer running Tableau Server, you should consider adding more memory, or scaling down the topology on the machine. If you are running Search & Browse on a node with few other processes, or with a large amount of physical memory, you can consider increasing the amount used by the search service. If you are running Search & Browse on a node with more than the default number of processes, you should consider decreasing the maximum heap memory allocation to avoid having the service attempt to use more memory than is available.

Default maximum heap memory allocations

The table below shows the default amount of heap memory Tableau allocates to Search & Browse on a server node, based on available memory:

System memory SOLR heap memory
<= 16 GB 1 GB
<= 32 GB 2 GB
<= 64 GB 4 GB
<= 128 GB 8 GB
> 128 GB 16 GB

To change the value of max heap memory, set the -Xmx value of searchserver.javamemopts using the tsm configuration set command.

First get the current values:

C:\WINDOWS\system32>tsm configuration get -k searchserver.javamemopts
-Xmx512m -Xms512m -XX:+ExitOnOutOfMemoryError -XX:-UsePerfData

Next, change the value of the -Xmx option. Include but do not change all other options:

tsm configuration set -k searchserver.javamemopts -v "-Xmx256m -Xms512m -XX:+ExitOnOutOfMemoryError -XX:-UsePerfData"

For more details about the searchserver.javamemopts configuration key, see searchserver.javamemopts.

Client session timeouts

You can configure how long Search & Browse clients will wait to establish a connection to the Search & Browse server, and to Coordination Service (Zookeeper). Both timeout values are set to a relatively high value, but if you experience issues browsing to server content, and vizportal and backgrounder logs show timeouts connecting to SOLR, try increasing these settings. If this has no impact, you may be running into limited resources on the Tableau Server computer.

searchserver.connection_timeout_milliseconds
searchserver.zookeeper_session_timeout_milliseconds

To change the values use the tsm configuration set command:

tsm configuration set -k searchserver.connection_timeout_milliseconds -v 

For more details about the searchserver.connection_timeout_milliseconds configuration key, see searchserver.connection_timeout_milliseconds.

Zookeeper connection health check timeout at startup

When Tableau Server is starting, resource usage is high, especially related to CPU usage. If Search & Browse does not make a connection to Coordination Service (zookeeper), it will fail to start. To account for this, Tableau Server performs a health check on the Coordination Service before starting Search & Browse.

If your Tableau Server computer is especially busy, or if Search & Browse fails to start, increase this timeout value.

An error is written to the control-searchserver.log files when this health check fails: Failed zookeeper health check. Refusing to start SOLR.

To increase the amount of time Tableau Server waits for a successful health check, set the value of searchserver.startup.zookeeper_healthcheck_timeout_ms using the tsm configuration set command.

tsm configuration set -k searchserver.startup.zookeeper_healthcheck_timeout_ms -v <nnnnnn>

For more details about the searchserver.startup.zookeeper_healthcheck_timeout_ms configuration key, see searchserver.startup.zookeeper_healthcheck_timeout_ms.

Thanks for your feedback! There was an error submitting your feedback. Try again or send us a message.