У меня есть стручок Kubernetes, у которого
- Запрошенная память 1500 МБ
- Ограничение памяти 2048 МБ
У меня есть 2 контейнера, работающие внутри этого модуляВо-первых, это реальное приложение (тяжелое Java-приложение) и облегченный поставщик журналов.
Модуль последовательно сообщает об использовании 1,9-2 ГБ памяти.Из-за этого развертывание масштабируется (задается конфигурация автоматического масштабирования, которая масштабирует модули при потреблении памяти> 80%), что, естественно, приводит к увеличению количества модулей и увеличению затрат
Желтая линия представляет использование памяти приложения
Однако, при более глубоком расследовании, это то, что я обнаружил.
На exec
внутри контейнера приложения,Я выполнил команду top
, и она сообщает, что в общей сложности доступно 16431508 KiB
или примерно 16 ГБ памяти, то есть памяти, доступной на компьютере.
В контейнере приложения выполняется 3 процесса, изиз которых корневой процесс (приложение) занимает 5,9% памяти, что примерно равно 0,92 ГБ.
Регистратор просто занимает 6 МБ памяти.
Что я не понимаю, так это ПОЧЕМУ мой модуль постоянно сообщает о таких высоких показателях использования.Я что-то пропустил ?Мы несем значительные расходы из-за непреднамеренного автоматического масштабирования и хотели бы исправить то же самое.