Несоответствие использования памяти процесса в контейнере Kubernetes sidecar

Несоответствие использования памяти процесса в контейнере Kubernetes sidecar

У меня есть контейнер-коляска со следующими ресурсами:

resources:
  limits:
    memory: 512Mi
  requests:
    memory: 64Mi

Однако, когда я запускаю top, я вижу это:

  • Посланник и пилот-агент, похоже, используют ~ 363 МБ и 61 МБ соответственно.
  • использованная память вверху 54,6 МБ
  • запуск free -mдает следующее; на первый взгляд некоррелированный ответ
$ free -m
              total        used        free      shared  buff/cache   available
Mem:         385307       47140      315018         292       23148      336021
Swap:             0           0           0

верхнее бега в коляске

Что именно здесь происходит и сколько памяти потребляют эти процессы?

решение1

Этот бесплатный и самый популярный вывод показывает, что используется около 50 000 МБ из общего объема памяти хоста около 385 000 МБ.

Контейнеры разделяют ядро, поэтому метрики хоста обычно показывают числа по всему узлу. Хотя пространства имен показывают только ваши процессы и файлы. Это отличается от выделенной виртуальной машины или физического хоста, где операционная система существует только для поддержки вашего приложения.

Для номеров контейнеров требуется запрос номеров cgroups. Посмотрите несколько способов сделать это на Stack Overflow:Проверка ЦП и памяти модуля Kubernetes. Многие из них требуют сервера метрик.

Остерегайтесь суммировать RESident-память процессов и ожидать, что это будет точным использованием памяти системой. Это не включает в себя общую память или кэши. И ядро ​​делает странные трюки с учетом памяти. Ваши 3 значащие цифры — это правильная идея. Хотя в простом случае небольшого количества процессов, использующих в основном частную память, это хорошая оценка.

Связанный контент