Как мы улучшили балансировку нагрузки ингестеров в Grafana Mimir с помощью spread-minimizing токенов
Grafana Mimir - наша открытая, горизонтально масштабируемая, мультиарендная база временных рядов, позволяющая принимать более 1 миллиарда активных серий. Ингестеры Mimir используют консистентное хеширование - распределённую технику хеширования для репликации данных. Этот подход гарантирует минимальное количество перемещений временных рядов между доступными ингестерами при добавлении или удалении узлов в системе.
Мы заметили, что ранее используемый в Mimir алгоритм консистентного хеширования приводил к неравномерному распределению временных рядов между ингестерами: разброс нагрузки доходил до 25%. В результате одни ингестеры перегружались, а другие оставались недоиспользованными. Чтобы решить эту проблему, мы разработали новый алгоритм - стратегию генерации токенов, минимизирующую разброс. Она позволяет, с одной стороны, сохранять преимущества консистентного хеширования, а с другой - достигать почти идеального распределения нагрузки.
Равномерная балансировка нагрузки оптимизирует сетевую производительность и снижает задержки, поскольку спрос равномерно распределяется между ингестерами. Это обеспечивает более эффективное использование вычислительных ресурсов и ведёт к более стабильной производительности. В этом посте мы представим наш новый алгоритм и покажем, как он улучшил балансировку нагрузки ингестеров в некоторых наших продакшн-кластерах Grafana Cloud Metrics (работающих на базе Mimir) до уровня, который теперь практически идеален.
https://grafana.com/blog/2024/03/07/how-we-improved-ingester-load-balancing-in-grafana-mimir-with-spread-minimizing-tokens/
#devops #девопс
Подпишись 👉@i_DevOps
Post #3241
1.46K

- ❤ 2
- 👍 1