---
schema_version: "1"
id: 9905d59421ed2996521a6ee58a5db737775eb2a4f24f6c21567603be5eeda8f5
title: Tableau Server VizQL Server
collection: tableau
version: current
locale: en-gb
portal_url: https://docs.salesforce.com/tableau/current/en-gb/server-linux/server_process_vizql-server.md
canonical_url: https://help.tableau.com/current/server-linux/en-gb/server_process_vizql-server.htm
source_site: help.tableau.com
content_type: documentation
content_hash: eb327b5d86ef3229b981d8027346dc3ce30984bdf54cc6379966e09ea40405ac
description: The VizQL Server loads and renders views, and computes and executes queries
---
[Skip to main content](#main-content)

# Tableau Server VizQL Server

The VizQL Server loads and renders views, and computes and executes queries. To achieve high availability for the VizQL Server process, configure one or more instances to run on multiple nodes.

<table style="width: 100%;mc-table-style: url('Resources/TableStyles/Basic-Border.css');" class="TableStyle-Basic-Border" cellspacing="0"><colgroup><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"></colgroup><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><strong>Process</strong></td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><p>VizQL Server</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><strong>Status</strong></td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">Status of theVizQL Server process is visible on the Status Page. For more information, see <a href="https://help.tableau.com/current/server-linux/en-gb/service_viewstatus.htm" class="xref">View Server Process Status</a></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1"><strong>Logging</strong></td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1">Logs generated by theVizQL Server process are located in <code><code>/var/opt/tableau/tableau_server/data/tabsvc/logs/</code>vizqlserver</code>. For more information, see <a href="https://help.tableau.com/current/server-linux/en-gb/logs_loc.htm" class="xref">Tableau Server Logs and Log File Locations</a></td></tr></tbody></table>

What happens if a VizQL Server process fails? If there is only one VizQL Server process and it fails, then Tableau Server will no longer be able to render any views. High availability requires configuring redundant VizQL processes. A fairly typical configuration consists of two to four VizQL Server processes on each node.

This simultaneously serves the need for high availability and scalability. If multiple VizQL Server processes are running then the failure of a single process will result in the failure of any requests and the loss of session data at the time of its failure. Any future requests will be routed to the other working VizQL Server processes on the Tableau Server cluster.

## VizQL Server memory monitoring

**Important:** As a best practice, we recommend you leave settings at their default values unless instructed by Tableau Technical Support.

Beginning in version 2026.2.0, VizQL Server monitors its memory usage and will shut down idle sessions if necessary.

### How VizQL Server monitors memory usage

In Tableau Server version 2026.2.0 and later, the `[native_api.close_old_sessions_if_memory_pressure_high](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#close_old_sessions_if_memory_pressure_high)` key is set to `true`. With this setting enabled, VizQL Server monitors its memory usage each time a new session is created, and if memory usage exceeds the threshold defined by `native_api.max_memory_pressure_percentage`, the oldest idle sessions are closed to reduce memory usage. The higher the memory usage, the more aggressively old idle sessions are closed. Sessions that are actively in use with the user interacting with a view are never closed. Memory reclamation is done in the background and does not slow or block new session creation.

VizQL memory usage monitoring depends on several interacting configuration keys:

| Configuration key | Type | Default | Description |
| --- | --- | --- | --- |
| `native_api.memory_limit_enabled` | String | `true` | Controls whether memory monitoring takes place. If this is set to `false`, no memory monitoring occurs. |
| `native_api.close_old_sessions_if_memory_pressure_high` | String | `true` | Determines whether old, idle sessions will be closed when memory runs short. |
| `native_api.max_memory_pressure_percentage` | Integer | `90` | The memory usage percentage at which proactive session reclamation begins. (The comparison base is the process memory limit, which is controlled by `native_api.memory_limit_per_process_gb` or `native_api.memory_limit_per_process_percentage`). |
| `native_api.goal_memory_pressure_percentage` | Integer | `80` | The target memory usage percentage that reclamation attempts to reach. Must be less than `max_memory_pressure_percentage`. |
| `native_api.memory_limit_per_process_gb` | Integer | `0` | An absolute per-process memory limit in gigabytes. |
| `native_api.memory_limit_per_process_percentage` | Integer | `70` | A percentage of total physical memory to calculate the process memory limit. Used only when `native_api.memory_limit_per_process_gb` == 0. |
|   |   |   |   |