Типы инстансов и гибкость
ClickHouse Managed Postgres предлагает широкий выбор типов инстансов, каждый из которых оптимизирован под разные рабочие нагрузки:- Более 50 типов инстансов доступны в конфигурациях, оптимизированных по вычислительным ресурсам, памяти и хранилищу
- NVMe-хранилище на всех типах инстансов обеспечивает стабильно высокую производительность дискового ввода-вывода
- Независимое масштабирование ресурсов: выбирайте оптимальный баланс CPU, памяти и хранилища в зависимости от вашей рабочей нагрузки
Выбор подходящего типа инстанса
Как работает масштабирование
При смене типа инстанса ClickHouse Managed Postgres выполняет вертикальное масштабирование: подготавливает новую инфраструктуру и переносит вашу базу данных с минимальным простоем.Процесс масштабирования
- Подготовка резервного инстанса: Создаётся новый резервный инстанс с целевым типом инстанса (CPU, память и конфигурация хранилища)
- Восстановление из резервных копий в объектном хранилище: Резервный инстанс инициализируется восстановлением из самой свежей резервной копии, хранящейся в объектном хранилище
-
Параллельное воспроизведение WAL: Резервный инстанс применяет все изменения Write-Ahead Log (WAL), произошедшие с момента создания резервной копии, с помощью механизмов параллельного восстановления на базе WAL-G
- WAL-G обеспечивает быстрые параллельные операции восстановления
- Создатель WAL-G входит в команду Ubicloud, с которой мы сотрудничаем, что обеспечивает глубокую экспертизу и оптимизацию
- Репликация с дозагрузкой: Резервный инстанс догоняет основной, потоково получая и применяя текущие изменения WAL
-
Failover: Когда резервный инстанс полностью синхронизирован, контролируемый failover переводит его в роль нового основного
- Это единственный шаг, который вызывает простой (~30 секунд)
- Все активные соединения прерываются во время failover
- После завершения failover клиентам необходимо переподключиться
- Вывод старого инстанса из эксплуатации: Исходный инстанс выводится из эксплуатации после завершения failover
Продолжительность масштабирования
- Восстановление резервной копии: время, необходимое для восстановления последней полной резервной копии из объектного хранилища на новый инстанс
- Воспроизведение WAL: время, необходимое для воспроизведения инкрементальных изменений WAL с момента последней полной резервной копии
- Параллельное восстановление: механизмы параллельного восстановления WAL-G значительно ускоряют процесс
Параллельное восстановление с WAL-G
ClickHouse Managed Postgres использует WAL-G для ускорения восстановления из резервных копий во время операций масштабирования. Важно отметить, что создатель WAL-G входит в команду Ubicloud, с которой мы сотрудничаем, что добавляет процессу восстановления глубокую экспертизу. WAL-G обеспечивает:- Параллельную загрузку и распаковку: Несколько сегментов резервной копии одновременно загружаются из объектного хранилища и распаковываются
- Эффективное воспроизведение WAL: Инкрементальные изменения WAL по возможности применяются параллельно
- Оптимизированную потоковую передачу: Прямая потоковая передача из объектного хранилища без промежуточного копирования
- Быстрое восстановление: Хотя общее время зависит от объема данных, параллельный подход заметно ускоряет этот процесс
Запуск операции масштабирования
Чтобы масштабировать инстанс ClickHouse Managed Postgres:- Перейдите на вкладку Настройки вашего инстанса
- В разделе Масштабирование прокрутите страницу до пункта Размер сервиса
- Выберите целевой тип инстанса
- Просмотрите изменения и нажмите «Применить изменения»
Стратегии масштабирования
Вертикальное масштабирование
Вертикальное масштабирование (смена типа инстанса) — основной способ изменения объёма ресурсов в ClickHouse Managed Postgres. Этот подход обеспечивает:- Точную настройку: Выбирайте из более чем 50 типов инстансов, чтобы точно подобрать CPU, память и хранилище
- Оптимизацию под рабочую нагрузку: Выбирайте конфигурации, оптимизированные под конкретную рабочую нагрузку (с упором на вычисления, память или хранилище)
- Экономичность: Платите только за те ресурсы, которые вам нужны, без избыточного выделения
Реплики для чтения для горизонтального масштабирования
- Перенесите запросы на чтение на выделенные реплики для чтения
- Каждая реплика для чтения — это полностью независимый инстанс Postgres с собственными вычислительными ресурсами и памятью
- Реплики для чтения получают изменения WAL из Объектного хранилища, что обеспечивает эффективную репликацию
Масштабирование CDC для интеграции ClickHouse
- Масштабируйте CDC-воркеры от 1 до 24 ядер CPU
- Объем памяти автоматически масштабируется в 4 раза от количества ядер CPU
- Настраивайте масштабирование через ClickPipes OpenAPI
Автомасштабирование
ClickHouse Managed Postgres отслеживает использование диска и автоматически увеличивает объём хранилища, чтобы на вашем инстансе не закончилось место:- Использование диска: 85%: Вы получите уведомление в облачной консоли и по электронной почте.
- Использование диска: 90%: Запускается автомасштабирование. Объём хранилища увеличивается до следующего доступного размера для семейства вашего инстанса. CPU и память не изменяются, если текущий размер инстанса не поддерживает диск большего объёма; в этом случае размер инстанса также увеличивается. Реплики для чтения масштабируются одновременно с основным инстансом.
- Использование диска: 95%: Переключение выполняется сразу после готовности нового сервера, без ожидания.
Переключение и соединения
Размер хранилища не изменяется на месте. Автомасштабирование выполняется по тому же процессу масштабирования, что и при ручном изменении типа инстанса: подготавливается сервер замены с большим объёмом хранилища, восстанавливается из последней резервной копии, догоняет WAL, а затем в ходе контролируемого переключения становится новым основным. Для инстансов с высокой доступностью в рамках той же операции создаются резервные инстансы замены нового размера. Переключение — единственный этап с простоем, который обычно длится менее минуты. Настроенное запланированное окно обновления не откладывает его: это окно применяется к обслуживанию платформы, а не к масштабированию. Во время переключения открытые соединения разрываются, а незавершённые транзакции откатываются. Строка подключения не изменяется: DNS обновляется и начинает указывать на новый основной инстанс, а приложения со стандартной логикой переподключения автоматически восстанавливают работу.Режим только для чтения
Если операции записи заполняют диск быстрее, чем завершается автомасштабирование, инстанс переходит в режим только для чтения, чтобы предотвратить полное заполнение диска. Порог определяется оставшимся свободным местом:
Операции чтения продолжают работать, а операции записи завершаются стандартной ошибкой Postgres
cannot execute INSERT in a read-only transaction. Если свободное место продолжает уменьшаться, существующие соединения разрываются, чтобы каждый сеанс применил настройку только для чтения; после повторного подключения клиентов операции чтения снова работают. Режим только для чтения отключается автоматически после восстановления свободного места, обычно сразу после завершения переключения при масштабировании вверх.
Пример
Инстанс с хранилищем объёмом 1024 ГБ обслуживает рабочую нагрузку с интенсивной записью:- При использовании 870 ГБ (85%) вы получите уведомление о заполнении хранилища.
- При использовании 922 ГБ (90%) запускается автомасштабирование. Будет подготовлен сервер замены с хранилищем объёмом 2048 ГБ и восстановлен из последней резервной копии, при этом ваш инстанс продолжит обслуживать трафик.
- Когда сервер замены синхронизируется, будет выполнено переключение. Подключения прервутся менее чем на минуту, ваше приложение повторно подключится к тому же имени хоста, а использование хранилища снизится примерно до 45%.
- Если до завершения переключения свободное пространство опустится ниже 2% (около 20 ГБ), инстанс перейдёт в режим только для чтения. Запись автоматически возобновится после завершения переключения на диск большего размера.