作者回复: 赞!
作者回复: 很高兴,这篇文章对你有帮助。 https://github.com/lxc/lxcfs, lxcfs可以为每个容器虚拟一些/proc下的文件,比如/proc/stat
作者回复: USER_HZ, 可以用命令 "getconf CLK_TCK"拿
作者回复: @蒋悦 > 容器的cpu使用就必须要在容器内进行,从宿主机是无法计算的,是这样吗? 不是这样的,从宿主机也可以得到容器对应的CPU Cgroup里的值。
作者回复: @争光 Alan 你是指 cpu/memory 使用率在分别在docker stats 和cadvisor里是不一样的? 我们用cadvisor, 看到的结果大致和cgroup差不多,docker stats也是通过cgroup计算的。 你看到的差异有多大?或者你看到的结果,和你自己通过cgroup里的值计算比较一下,哪个更加接近一些?
作者回复: 其他的cpu usage, 如io/hi/si等更多的是从宿主机角度统计的,也不能知道这些开销是属于哪个进程的,也就很难放到每一个cgroup里。
作者回复: 这两个目录是一样的, lrwxrwxrwx 1 root root 11 Dec 14 23:51 cpu -> cpu,cpuacct lrwxrwxrwx 1 root root 11 Dec 14 23:51 cpuacct -> cpu,cpuacct dr-xr-xr-x 5 root root 0 Dec 14 23:51 cpu,cpuacct
作者回复: cAdvisor就是通过读取sys cgroup 或者 /proc下的状态信息来得到container cpu/mem/net/io metrics的。 一般一个节点上的container数量是小于1000的,metrics获取的周期在10s 的情况下, 这个资源消耗不会很大。
作者回复: 是的。
作者回复: 如果是单纯的高计算的进程,状态多为R.