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