我需要收集诸如cpu、内存和I/O之类的docker度量,但我注意到在我的Ubuntu 14.04上,度量的位置与我的CoreOs系统中的位置不同:
例如:
ubuntu中的docker cpu指标位于以下位置:
/sys/fs/cgroup/cpuacct/docker/<dockerLongId>/cpuacct.stat
CoreOs的docker cpu指标位于以下位置:
/sys/fs/cgroup/cpuacct/system.slice/docker-<dockerLongId>.scope/cpuacct.stat
你知道支持这两种环境的最佳方式是什么吗?
这方面存在许多问题。从CoreOS与Ubuntu的比较开始,这是因为在Ubuntu上没有使用systemd切片。
人系统切片
最后,控制组被设计为可配置的。在任何给定的时间,都可以通过在不同的cgroup之间移动PID来重新配置进程。本质上会有少量不可预测的行为。对于由各自的init系统启动的进程,这些模式应该是稳定的。
检测应该使用哪种方法的最佳方法是读取/etc/os-release
。这个文件的目的是提供一个稳定的方法,不仅可以确定发行版,还可以确定版本。