Каким образом можно узнать, сколько памяти используется в поде OpenShift?

Как определить, какой контейнер из нескольких тратит лимит памяти всего пода, и какой процесс внутри контейнера потребляет эту память? При использовании инструмента top для анализа всех контейнеров в поде, не удалось собрать общую сумму, аналогичную той, что отображается в статистике пода в OpenShift. Как можно понять, откуда OpenShift берет эту информацию?
  • 22 февраля 2024 г. 11:08
Ответы на вопрос 2
1. Чтобы узнать, сколько памяти используется в поде OpenShift, можно выполнить команду `oc describe pod <имя_пода> -n <namespace>`, где `<имя_пода>` - имя пода, а `<namespace>` - пространство имен, в котором находится под. В разделе "Containers" будет указано количество ресурсов, выделенных для каждого контейнера в поде, включая память.

2. Для определения того, какой контейнер из нескольких тратит лимит памяти всего пода, можно использовать утилиту `top` внутри каждого контейнера. Для этого можно выполнить команду `oc exec -it <имя_пода> -n <namespace> -- top`, где `<имя_пода>` - имя пода, а `<namespace>` - пространство имен. После этого можно найти процесс или контейнер, который потребляет больше всего памяти.

3. Если при анализе всех контейнеров в поде с помощью `top` не удалось собрать общую сумму памяти, то возможно OpenShift использует другие механизмы для сбора информации о потреблении памяти. OpenShift может использовать статистику cgroup для сбора информации о ресурсах, включая память, потребляемую каждым контейнером в поде. Для получения более подробной информации о потреблении ресурсов в OpenShift можно изучить документацию и инструменты мониторинга, предоставляемые платформой.
kubectl top pod --containers или kubectl -it exec в pod, а дальше искать инфу в /sys/fs/cgroup
Похожие вопросы