Мы оцениваем ISTIO для одного из проектов. В проекте около 200 контейнеров и около 200 услуг. Каждый контейнер может быть доставлен с репликой, установленной на 2. Таким образом, всего может быть 400 контейнеров и, следовательно, 400 боковых вагонов ISTIO.
При настройках по умолчанию каждая коляска ISTIO использует до 300 Мбайт. С 400 бортовыми вагонами это даст 120 Гбайт (300 Мбайт * 400) памяти для бортовых вагонов. Кажется, это даже больше, чем требования к памяти, необходимые для приложения.
Есть два наблюдения
- Использование памяти, похоже, увеличивается с увеличением количества ядер. В системе, которую мы пытаемся, 88 ядер. Текущее понимание того, что для каждого ядра требуется от 1,5 до 2 Мбит / с.
- Использование памяти, похоже, растет с увеличением количества служб. В проекте, над которым мы работаем, мы ожидаем увидеть около 200 сервисов. Кажется, что каждая служба занимает около 3 Мбайт.
По (1) мы нашли (из Google) решение. Решение состоит в том, чтобы установить меньшее число параллелизма посланников.
По (2) есть ли какое-нибудь решение? В нашем проекте не каждый контейнер взаимодействует с каждым другим контейнером / сервисом. Данный контейнер может взаимодействовать с набором целевых сервисов (обычно около 5 или около того). Может ли боковая машина данного контейнера выделить память для служб, которые использует контейнер?
Мне интересно, есть ли у кого-нибудь похожая проблема с ISTIO и как они обошли проблемы с потреблением памяти.