Server Settings

To enable authentication, set `interserver_http_credentials.allow_empty` to `true` and add credentials. This allows connections with authentication and without it.

```
<interserver_http_credentials>
    <user>admin</user>
    <password>111</password>
    <allow_empty>true</allow_empty>
</interserver_http_credentials>
```

After configuring all replicas set `allow_empty` to `false` or remove this setting. It makes authentication with new credentials mandatory.

To change existing credentials, move the username and the password to `interserver_http_credentials.old` section and update `user` and `password` with new values. At this point the server uses new credentials to connect to other replicas and accepts connections with either new or old credentials.

```
<interserver_http_credentials>
    <user>admin</user>
    <password>222</password>
    <old>
        <user>admin</user>
        <password>111</password>
    </old>
    <old>
        <user>temp</user>
        <password>000</password>
    </old>
</interserver_http_credentials>
```

When new credentials are applied to all replicas, old credentials may be removed.

## interserver\_http\_host[​](#interserver_http_host "Direct link to interserver_http_host")

The hostname that can be used by other servers to access this server.

If omitted, it is defined in the same way as the `<hostname -f>` command.

Useful for breaking away from a specific network interface.

**Example**

```
<interserver_http_host>example.clickhouse.com</interserver_http_host>
```

## interserver\_http\_port[​](#interserver_http_port "Direct link to interserver_http_port")

Port for exchanging data between ClickHouse servers.

**Example**

```
<interserver_http_port>9009</interserver_http_port>
```

## interserver\_https\_host[​](#interserver_https_host "Direct link to interserver_https_host")

Similar to `<interserver_http_host>`, except that this hostname can be used by other servers to access this server over `<HTTPS>`.

**Example**

```
<interserver_https_host>example.clickhouse.com</interserver_https_host>
```

## interserver\_https\_port[​](#interserver_https_port "Direct link to interserver_https_port")

Port for exchanging data between ClickHouse servers over `<HTTPS>`.

**Example**

```
<interserver_https_port>9010</interserver_https_port>
```

## interserver\_listen\_host[​](#interserver_listen_host "Direct link to interserver_listen_host")

Restriction on hosts that can exchange data between ClickHouse servers.
If Keeper is used, the same restriction will be applied to the communication between different Keeper instances.

Note

By default, the value is equal to the [`listen_host`](#listen_host) setting.

**Example**

```
<interserver_listen_host>::ffff:a00:1</interserver_listen_host>
<interserver_listen_host>10.0.0.1</interserver_listen_host>
```

Type:

Default:

## io\_thread\_pool\_queue\_size[​](#io_thread_pool_queue_size "Direct link to io_thread_pool_queue_size")

The maximum number of jobs that can be scheduled on the IO Thread pool.

Note

A value of `0` means unlimited.

## jemalloc\_collect\_global\_profile\_samples\_in\_trace\_log[​](#jemalloc_collect_global_profile_samples_in_trace_log "Direct link to jemalloc_collect_global_profile_samples_in_trace_log")

Store jemalloc's sampled allocations in system.trace\_log

## jemalloc\_enable\_background\_threads[​](#jemalloc_enable_background_threads "Direct link to jemalloc_enable_background_threads")

Enable jemalloc background threads. Jemalloc uses background threads to cleanup unused memory pages. Disabling it could lead to performance degradation.

## jemalloc\_enable\_global\_profiler[​](#jemalloc_enable_global_profiler "Direct link to jemalloc_enable_global_profiler")

Enable jemalloc's allocation profiler for all threads. Jemalloc will sample allocations and all deallocations for sampled allocations.
Profiles can be flushed using SYSTEM JEMALLOC FLUSH PROFILE which can be used for allocation analysis.
Samples can also be stored in system.trace\_log using config jemalloc\_collect\_global\_profile\_samples\_in\_trace\_log or with query setting jemalloc\_collect\_profile\_samples\_in\_trace\_log.
See [Allocation Profiling](/docs/operations/allocation-profiling)

## jemalloc\_flush\_profile\_interval\_bytes[​](#jemalloc_flush_profile_interval_bytes "Direct link to jemalloc_flush_profile_interval_bytes")

Flushing jemalloc profile will be done after global peak memory usage increased by jemalloc\_flush\_profile\_interval\_bytes

## jemalloc\_flush\_profile\_on\_memory\_exceeded[​](#jemalloc_flush_profile_on_memory_exceeded "Direct link to jemalloc_flush_profile_on_memory_exceeded")

Flushing jemalloc profile will be done on total memory exceeded errors

## jemalloc\_flush\_profile\_on\_memory\_exceeded\_interval[​](#jemalloc_flush_profile_on_memory_exceeded_interval "Direct link to jemalloc_flush_profile_on_memory_exceeded_interval")

If non-zero, sets the minimum interval in seconds between flushing jemalloc profiles on total memory exceeded errors. For example, 5 means at most one profile flush every 5 seconds. Takes priority over `jemalloc_flush_profile_on_memory_exceeded`.

## jemalloc\_max\_background\_threads\_num[​](#jemalloc_max_background_threads_num "Direct link to jemalloc_max_background_threads_num")

Maximum amount of jemalloc background threads to create, set to 0 to use jemalloc's default value

## jemalloc\_profiler\_sampling\_rate[​](#jemalloc_profiler_sampling_rate "Direct link to jemalloc_profiler_sampling_rate")

Controls jemalloc's `lg_prof_sample` — the base-2 logarithm of the average interval (in bytes) between allocation samples.
The default value of 19 corresponds to 512 KiB. Setting it to a smaller value increases sampling frequency (more overhead, more detail), and a larger value decreases it.
Changing this value calls `prof.reset` which resets all accumulated profiling statistics. Requires profiling to be enabled (`MALLOC_CONF=prof:true`).

## keep\_alive\_timeout[​](#keep_alive_timeout "Direct link to keep_alive_timeout")

The number of seconds that ClickHouse waits for incoming requests for HTTP protocol before closing the connection.

**Example**

```
<keep_alive_timeout>10</keep_alive_timeout>
```

## keeper\_hosts[​](#keeper_hosts "Direct link to keeper_hosts")

Dynamic setting. Contains a set of [Zoo]Keeper hosts ClickHouse can potentially connect to. Doesn't expose information from `<auxiliary_zookeepers>`

## keeper\_multiread\_batch\_size[​](#keeper_multiread_batch_size "Direct link to keeper_multiread_batch_size")

Maximum size of batch for MultiRead request to [Zoo]Keeper that support batching. If set to 0, batching is disabled. Available only in ClickHouse Cloud.

## keeper\_server.socket\_receive\_timeout\_sec[​](#keeper_server.socket_receive_timeout_sec "Direct link to keeper_server.socket_receive_timeout_sec")

Keeper socket receive timeout.

## keeper\_server.socket\_send\_timeout\_sec[​](#keeper_server.socket_send_timeout_sec "Direct link to keeper_server.socket_send_timeout_sec")

Keeper socket send timeout.

## ldap\_servers[​](#ldap_servers "Direct link to ldap_servers")

List LDAP servers with their connection parameters here to:

- use them as authenticators for dedicated local users, who have an 'ldap' authentication mechanism specified instead of 'password'
- use them as remote user directories.

The following settings can be configured by sub-tags: