Если у кластера OpenSearch имеется избыточная емкость из‑за непикового трафика или уменьшенных объёмов данных, вы можете уменьшить количество его узлов для оптимизации расходов.
Тип | Сценарий | Процесс изменения |
|---|---|---|
Удаление узлов случайным образом | Случайным образом удаляет узлы кластера для оптимизации расходов. |
Узлы удаляются по одному, чтобы не прерывать работу сервисов. |
Удаление указанных узлов | Удаляет указанные узлы кластера для оптимизации расходов. |
Для кластера с оплатой по использованию вы можете увидеть его новую цену при подтверждении масштабирования вниз в консоли. После завершения масштабирования вниз кластер будет оплачиваться по новой цене.
Например, если в кластере три data nodes, три client nodes и три cold data nodes, максимальное количество узлов, которое можно удалить за один раз, равно двум. Формула: (3+3)/2 = 3; и количество узлов, которое можно удалить, должно быть меньше 3, поэтому правильный результат — 2.
Например, если максимальное количество реплик для всех индексов в кластере равно 2, общее количество data nodes и cold data nodes после масштабирования вниз должно быть не менее 3.
Например, если в кластере два data nodes и пять master nodes, только два master nodes можно удалить в текущей операции масштабирования вниз. Формула: 5/2 = 2.5; и количество узлов, которое можно удалить, должно быть меньше 2.5, поэтому правильный результат — 2.
Node Type | Value Range |
|---|---|
Data nodes |
|
Master nodes | 3, 5, 7, or 9 (must be an odd number from 3 to 9) |
Client nodes | 1~64 |
Холодные узлы данных | 1–32 |
Перед изменением ознакомьтесь с возможными последствиями и рекомендациями по эксплуатации, а также разработайте план по минимизации этих последствий.
Во время масштабирования вниз (scale-in) шарды на удаляемых узлах мигрируют на оставшиеся узлы. Этот процесс будет потреблять I/O‑производительность. Поэтому рекомендуется выполнять операцию в непиковые часы.
Чтобы минимизировать это влияние, рекомендуется регулировать скорость миграции данных в соответствии с циклом нагрузки Кластера: увеличить скорость миграции данных в непиковые часы, чтобы сократить продолжительность задачи, и уменьшить её перед пиковыми часами, чтобы обеспечить оптимальную производительность Кластера. Скорость миграции данных определяется параметром indices.recovery.max_bytes_per_sec. Значение параметра по умолчанию равно количеству vCPU, умноженному на 8 МБ. Например, для четырёх vCPU скорость миграции данных составляет 32 МБ/с. Вы можете изменить её в соответствии с требованиями сервиса.
После масштабирования вниз оставшиеся узлы должны будут обрабатывать всю нагрузку Кластера. Это может привести к повышенному использованию CPU, памяти и дискового I/O, влияя на производительность запросов и записей. При неравномерном распределении шардов могут возникнуть узкие места в производительности. Поэтому перед масштабированием вниз необходимо оценить, способны ли оставшиеся узлы справиться с текущей нагрузкой Кластера.
После запуска задачу масштабирования нельзя остановить, пока она не завершится успешно или не завершится с ошибкой.
Для оценки длительности операции масштабирования вниз можно использовать следующую формулу:
Продолжительность масштабирования вниз (мин) = 5 мин × количество удаляемых узлов + продолжительность миграции данных (мин)
где 5 минут указывает типичную продолжительность операций, не связанных с миграцией данных (например, инициализация) для одного узла. Это эмпирическое значение.
Продолжительность миграции данных (мин) = Общий объём данных удаляемых узлов (МБ) ÷ [Общее количество vCPU узлов данных × 8 (МБ/с) × 60 (с)]
где,
Параметр | Описание |
|---|---|
Действие | Выберите Scale in. |
Ресурсы | Количество ресурсов уменьшено. |
Nodes | Уменьшите количество узлов в столбце Nodes. Вы можете изменить несколько типов узлов одновременно. Для диапазона количеств узлов, поддерживаемых каждым типом узлов, см. Constraints. |
Параметр | Описание |
|---|---|
Тип узла | Разверните тип узла, который необходимо изменить, чтобы отобразить все узлы под ним. Выберите узлы, которые нужно удалить. |
Во время миграции данных система переносит все данные с удаляемых узлов на оставшиеся узлы и удаляет эти узлы после завершения миграции данных. Если данные на удаляемых узлах имеют реплики на других узлах, миграцию данных можно пропустить, и изменение кластера будет выполнено быстрее.