> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> механизм кэширования, позволяющий хранить  данные в памяти процесса, а не полагаться на кэш страниц ОС.

# Кэш страниц в пространстве пользователя

<div id="overview">
  ## Обзор
</div>

> Кэш страниц в пространстве пользователя — это новый механизм кэширования, который позволяет хранить
> данные в памяти процесса, не полагаясь на кэш страниц ОС.

ClickHouse уже предлагает [Файловый кэш](/ru/concepts/features/configuration/server-config/storing-data)
как способ кэширования поверх удалённого объектного хранилища, такого как Amazon S3, Google
Cloud Storage (GCS) или Azure Blob Storage. Кэш страниц в пространстве пользователя предназначен
для ускорения доступа к удалённым данным в случаях, когда обычное кэширование ОС работает
недостаточно эффективно.

Он отличается от файлового кэша следующим образом:

| Файловый кэш                                                        | Кэш страниц в пространстве пользователя     |
| ------------------------------------------------------------------- | ------------------------------------------- |
| Записывает данные в локальную файловую систему                      | Существует только в памяти                  |
| Занимает место на диске (также может быть настроен на tmpfs)        | Не зависит от файловой системы              |
| Сохраняется после перезапуска сервера                               | Не сохраняется после перезапуска сервера    |
| Не учитывается в использовании памяти сервера                       | Учитывается в использовании памяти сервера  |
| Подходит как для хранения на диске, так и в памяти (кэш страниц ОС) | **Хорошо подходит для серверов без дисков** |

<div id="configuration-settings-and-usage">
  ## Параметры конфигурации и использование
</div>

<div id="usage">
  ### Использование
</div>

Чтобы включить кэш страниц в пространстве пользователя, сначала настройте его на сервере:

```bash theme={null}
cat config.d/page_cache.yaml
page_cache_max_size: 100G
```

<Note>
  Кэш страниц в пространстве пользователя может использовать до указанного объёма памяти, однако
  этот объём не резервируется. При необходимости эта память будет освобождаться
  для других нужд сервера.
</Note>

Далее включите его использование на уровне запроса:

```sql theme={null}
SET use_page_cache_for_disks_without_file_cache=1;
```

<div id="settings">
  ### Настройки
</div>

| Параметр                                                | Описание                                                                                                                                                                                                                                                                                                                                                     | По умолчанию |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------ |
| `use_page_cache_for_disks_without_file_cache`           | Использовать кэш страниц в пространстве пользователя для удалённых дисков, у которых не включен файловый кэш.                                                                                                                                                                                                                                                | `0`          |
| `use_page_cache_with_distributed_cache`                 | Использовать кэш страниц в пространстве пользователя при использовании Distributed Cache.                                                                                                                                                                                                                                                                    | `0`          |
| `read_from_page_cache_if_exists_otherwise_bypass_cache` | Использовать кэш страниц в пространстве пользователя в пассивном режиме, аналогично [`read_from_filesystem_cache_if_exists_otherwise_bypass_cache`](/ru/reference/settings/session-settings#read_from_filesystem_cache_if_exists_otherwise_bypass_cache).                                                                                                    | `0`          |
| `page_cache_inject_eviction`                            | Кэш страниц в пространстве пользователя может иногда случайным образом вытеснять некоторые страницы. Предназначено для тестирования.                                                                                                                                                                                                                         | `0`          |
| `page_cache_block_size`                                 | Размер фрагментов файла, хранимых в кэше страниц в пространстве пользователя, в байтах. Все чтения, проходящие через кэш, будут округляться вверх до значения, кратного этому размеру.                                                                                                                                                                       | `1048576`    |
| `page_cache_history_window_ms`                          | Задержка перед тем, как освобождённая память сможет быть использована кэшем страниц в пространстве пользователя.                                                                                                                                                                                                                                             | `1000`       |
| `page_cache_policy`                                     | Имя политики кэша страниц в пространстве пользователя.                                                                                                                                                                                                                                                                                                       | `SLRU`       |
| `page_cache_size_ratio`                                 | Размер защищённой очереди в кэше страниц в пространстве пользователя относительно общего размера кэша.                                                                                                                                                                                                                                                       | `0.5`        |
| `page_cache_min_size`                                   | Минимальный размер кэша страниц в пространстве пользователя.                                                                                                                                                                                                                                                                                                 | `104857600`  |
| `page_cache_max_size`                                   | Максимальный размер кэша страниц в пространстве пользователя. Установите 0, чтобы отключить кэш. Если значение больше `page_cache_min_size`, размер кэша будет непрерывно подстраиваться в этом диапазоне, чтобы использовать большую часть доступной памяти, сохраняя общее использование памяти ниже лимита (`max_server_memory_usage`\[`_to_ram_ratio`]). | `0`          |
| `page_cache_free_memory_ratio`                          | Доля лимита памяти, которую нужно оставлять свободной от кэша страниц в пространстве пользователя. Аналогично настройке Linux min\_free\_kbytes.                                                                                                                                                                                                             | `0.15`       |
| `page_cache_lookahead_blocks`                           | При промахе кэша страниц в пространстве пользователя за один раз считывать из нижележащего хранилища до такого количества последовательных блоков, если их тоже нет в кэше. Размер каждого блока — `page_cache_block_size` байт.                                                                                                                             | `16`         |
| `page_cache_shards`                                     | Разбить кэш страниц в пространстве пользователя на такое количество сегментов, чтобы уменьшить конкуренцию за mutex. Экспериментальный параметр, вряд ли улучшит производительность.                                                                                                                                                                         | `4`          |

<div id="related-content">
  ## Связанные материалы
</div>

* [Файловый кэш](/ru/concepts/features/configuration/server-config/storing-data)
* [Вебинар о выпуске ClickHouse v25.3](https://www.youtube.com/live/iCKEzp0_Z2Q?feature=shared\&t=1320)
