sysdig 与容器
容器内进程和宿主机操作系统共享内核,这意味着你能直接在宿主机上观察到容器内进程的运行及资源使用。但目前来说我们常用的ps、top等工具还不能很好地区分这些进程,而sysdig则做到了这点,并做得很全面。
简而言之,sysdig使用了一个能够捕获到内核和容器间交流的内核模块,使得它能够利用来源操作系统或容器的生成的事件数据流
CPU监控
licontainers 能检查在机器上运行的所有容器
$ sudo sysdig -c lscontainers
container.type container.image container.name container.id
-------------- --------------- ------------------- ------------
docker tutum/haproxy haproxy 49a74cb89f61
docker wordpress wordpress2 9bcff18fc4b4
lxc test test
docker wordpress wordpress1 0c34fe20f1fd
docker mysql mysql a0188c8bbf51
topcontainers_cpu 能检查所有运行中容器的CPU使用情况
$ sudo sysdig -c topcontainers_cpu
CPU% container.name
-----------------------------------------------------------------------
90.13% mysql
15.93% wordpress1
7.27% haproxy
-pc(or -pcontainer)命令行参数能让sysdig输出容器的上下文信息
sysdig提供了topprocs_cpu的chisel工具来展示CPU使用率最高的进程,同时使用-pc 选项,就能看到每一个进程属于那个容器$ sudo sysdig -pc -c topprocs_cpu
注意:-pc 选项会在所有的sysdig输出中添加容器上下文信息(因为其本质就是一种信息的输出格式)
如果我们想专注于某个容器的进程信息,可以在原来命令的基础上使用sysdig的filter过滤器
$ sudo sysdig -pc -c topprocs_cpu container.name=client
CPU% Process container.name
----------------------------------------------
02.69% bash client
31.04% curl client
$ sudo sysdig -pc -c topprocs_cpu container.name contains wordpress
CPU% Process container.name
------------