Как получить ОЗУ, ЦП, использование сети для определенного процесса в контейнере
Я смотрю на несколько контейнеров Docker, работающих на виртуальной машине Centos7. В каждом контейнере будет запущено несколько процессов. Для каждого процесса я хочу видеть сеть ЦП и использование ОЗУ, чтобы определить, когда контейнер начинает перегружаться. Получение ЦП и ОЗУ контейнера не будет достаточным, поскольку ЦП может выделять 100% ОЗУ, но в процессах на самом деле имеется ОЗУ. Я использовал долота Sysdig для получения загрузки ЦП отдельных процессов, но использование сети и ОЗУ не включено. Специально для сетевой статистики я хочу, чтобы сетевые пакеты отбрасывали любую другую соответствующую статистику. В идеале я мог бы использовать инструмент, подобный Sysdig, для получения статистики с хоста, вместо того, чтобы использовать ресурсы внутри контейнера для запуска отдельного генератора журналов.
1 ответ
Я верю, что вы можете использовать docker top <container id>
чтобы просмотреть все процессы, запущенные в контейнере, но это не покажет вам использование памяти и процессора и т. д.
Вы можете, как предлагается в комментариях, просмотреть общее использование памяти, использование процессора, ввод-вывод и т. Д. Всего контейнера, используя docker stats <container id>
,
Кроме того, вы можете войти в свой контейнер и просто посмотреть сами, используя docker exec -it <container id> bash
но учтите, что у вас может не быть доступного bash в зависимости от вашей базы, поэтому вам, возможно, придется использовать sh
,