Server Settings

Number of threads in the Thread pool used for reading from remote filesystem when `remote_filesystem_read_method = 'threadpool'`.

## threadpool\_remote\_fs\_reader\_queue\_size[​](#threadpool_remote_fs_reader_queue_size "Direct link to threadpool_remote_fs_reader_queue_size")

The maximum number of jobs that can be scheduled on the thread pool for reading from remote filesystem.

## threadpool\_writer\_pool\_size[​](#threadpool_writer_pool_size "Direct link to threadpool_writer_pool_size")

Size of background pool for write requests to object storages

## threadpool\_writer\_queue\_size[​](#threadpool_writer_queue_size "Direct link to threadpool_writer_queue_size")

Number of tasks which is possible to push into background pool for write requests to object storages

## throw\_on\_unknown\_workload[​](#throw_on_unknown_workload "Direct link to throw_on_unknown_workload")

Defines behaviour on access to unknown WORKLOAD with query setting 'workload'.

- If `true`, RESOURCE\_ACCESS\_DENIED exception is thrown from a query that is trying to access unknown workload. Useful to enforce resource scheduling for all queries after WORKLOAD hierarchy is established and contains WORKLOAD default.
- If `false` (default), unlimited access w/o resource scheduling is provided to a query with 'workload' setting pointing to unknown WORKLOAD. This is important during setting up hierarchy of WORKLOAD, before WORKLOAD default is added.

**Example**

```
<throw_on_unknown_workload>true</throw_on_unknown_workload>
```

**See Also**

- [Workload Scheduling](/docs/operations/workload-scheduling)

## timezone[​](#timezone "Direct link to timezone")

The server's time zone.

Specified as an IANA identifier for the UTC timezone or geographic location (for example, Africa/Abidjan).

The time zone is necessary for conversions between String and DateTime formats when DateTime fields are output to text format (printed on the screen or in a file), and when getting DateTime from a string. Besides, the time zone is used in functions that work with the time and date if they didn't receive the time zone in the input parameters.

**Example**

```
<timezone>Asia/Istanbul</timezone>
```

**See also**

- [session\_timezone](/docs/operations/settings/settings#session_timezone)

## tmp\_path[​](#tmp_path "Direct link to tmp_path")

Path on the local filesystem to store temporary data for processing large queries.

Note

- Only one option can be used to configure temporary data storage: tmp\_path, tmp\_policy, temporary\_data\_in\_cache.
- The trailing slash is mandatory.

**Example**

```
<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>
```

## tmp\_policy[​](#tmp_policy "Direct link to tmp_policy")

Policy for storage with temporary data. All files with `tmp` prefix will be removed at start.

Note

Recommendations for using object storage as `tmp_policy`:

- Use separate `bucket:path` on each server
- Use `metadata_type=plain`
- You may also want to set TTL for this bucket

Note

- Only one option can be used to configure temporary data storage: `tmp_path` ,`tmp_policy`, `temporary_data_in_cache`.
- `move_factor`, `keep_free_space_bytes`,`max_data_part_size_bytes` and are ignored.
- Policy should have exactly *one volume*

For more information see the [MergeTree Table Engine](/docs/engines/table-engines/mergetree-family/mergetree) documentation.

**Example**

When `/disk1` is full, temporary data will be stored on `/disk2`.

```
<clickhouse>
<storage_configuration>
<disks>
<disk1>
<path>/disk1/</path>
</disk1>
<disk2>
<path>/disk2/</path>
</disk2>
</disks>

<policies>
<!-- highlight-start -->
<tmp_two_disks>
<volumes>
<main>
<disk>disk1</disk>
<disk>disk2</disk>
</main>
</volumes>
</tmp_two_disks>
<!-- highlight-end -->
</policies>
</storage_configuration>

<!-- highlight-start -->
<tmp_policy>tmp_two_disks</tmp_policy>
<!-- highlight-end -->
</clickhouse>
```

## top\_level\_domains\_list[​](#top_level_domains_list "Direct link to top_level_domains_list")

Defines a list of custom top level domains to add where each entry is, of the format `<name>/path/to/file</name>`.

For example:

```
<top_level_domains_lists>
    <public_suffix_list>/path/to/public_suffix_list.dat</public_suffix_list>
</top_level_domains_lists>
```

See also:

- function [`cutToFirstSignificantSubdomainCustom`](/docs/sql-reference/functions/url-functions#cutToFirstSignificantSubdomainCustom) and variations thereof,
  which accepts a custom TLD list name, returning the part of the domain that includes top-level subdomains up to the first significant subdomain.

## top\_level\_domains\_path[​](#top_level_domains_path "Direct link to top_level_domains_path")

The directory with top level domains.

**Example**

```
<top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path>
```

## total\_memory\_profiler\_sample\_max\_allocation\_size[​](#total_memory_profiler_sample_max_allocation_size "Direct link to total_memory_profiler_sample_max_allocation_size")

Collect random allocations of size less or equal than specified value with probability equal to `total_memory_profiler_sample_probability`. 0 means disabled. You may want to set 'max\_untracked\_memory' to 0 to make this threshold to work as expected.

## total\_memory\_profiler\_sample\_min\_allocation\_size[​](#total_memory_profiler_sample_min_allocation_size "Direct link to total_memory_profiler_sample_min_allocation_size")

Collect random allocations of size greater or equal than specified value with probability equal to `total_memory_profiler_sample_probability`. 0 means disabled. You may want to set 'max\_untracked\_memory' to 0 to make this threshold to work as expected.

## total\_memory\_profiler\_step[​](#total_memory_profiler_step "Direct link to total_memory_profiler_step")

Whenever server memory usage becomes larger than every next step in number of bytes the memory profiler will collect the allocating stack trace. Zero means disabled memory profiler. Values lower than a few megabytes will slow down server.

## total\_memory\_tracker\_sample\_probability[​](#total_memory_tracker_sample_probability "Direct link to total_memory_tracker_sample_probability")

Allows to collect random allocations and de-allocations and writes them in the [system.trace\_log](/docs/operations/system-tables/trace_log) system table with `trace_type` equal to a `MemorySample` with the specified probability. The probability is for every allocation or deallocations, regardless of the size of the allocation. Note that sampling happens only when the amount of untracked memory exceeds the untracked memory limit (default value is `4` MiB). It can be lowered if [total\_memory\_profiler\_step](/docs/operations/server-configuration-parameters/settings#total_memory_profiler_step) is lowered. You can set `total_memory_profiler_step` equal to `1` for extra fine-grained sampling.

Possible values:

- Positive double.
- `0` — Writing of random allocations and de-allocations in the `system.trace_log` system table is disabled.

## trace\_log[​](#trace_log "Direct link to trace_log")

Settings for the [trace\_log](/docs/operations/system-tables/trace_log) system table operation.

The following settings can be configured by sub-tags: