Р.Шукла
ГлавнаяБлогФотоGitHub
Все статьи
|10 мин

Ускорение Kubernetes-оператора на 20%

GoKubernetesОптимизация

В команде Synapse мы разрабатывали Kubernetes-оператор для управления внутренними сервисами Сбербанка. При масштабировании до 500+ подов время рекончиляции стало критически долгим.

Диагностика

Профилирование с помощью pprof показало, что основное узкое место — алгоритм сравнения текущего и желаемого состояния. Мы использовали наивный O(n^2) подход.

Оптимизация

Заменили попарное сравнение на хеш-индексирование:

  • Построили хеш-карту текущего состояния
  • Добавили инкрементальный diff вместо полного пересчёта
  • Внедрили кэширование результатов между циклами рекончиляции
  • Назад к списку