Skip to content

container resource view isolation

Hong Zhiguo edited this page Nov 3, 2020 · 2 revisions

容器内CPU、内存、进程、磁盘等信息隔离

Tencent Linux 基于内核实现了类lxcfs的有关cpu、内存统计、进程、磁盘统计等信息的隔离 在docker中,通过如下接口,看到的不再是docker所在的物理机系统的信息,而是docker自己的统计信息:

  • /proc/cpuinfo
  • /proc/meminfo
  • /proc/stat
  • /proc/uptimes
  • /proc/loadavg
  • /proc/diskstat

使用方式

系统级开关

sysctl -w kernel.stats_isolated=0|1

该开关可读可写,且只有系统级开关开启的情况下,才能启用信息隔离。默认是关闭,

容器级别开关

1. 信息隔离控制开关(在docker里面进行配置)

sysctl -w kernel.container_stats_isolated=0|1

该开关可写不可读,且在系统级开关和它同时开启的情况下才有效,默认开启 系统可以在容器对应cgroup的CPU、cpuacct、cpuset、blkio等子系统的xxx.stats_isolated(xxx子系统名)来查看docker是否开启了docker级别开关, 该开关系统只能查看,不能设置

2. cpuinfo显示控制开关

sysctl -w kernel.cpuquota_aware=0|1

默认情况下/proc/cpuinfo显示的cpu个数与cpuset子系统的cpus是相同的。 而lxcfs则使用cpu子系统的quota来控制CPU的个数,为了和lxcfs一致,提供了该开关 默认开启,即:/proc/cpuinfo显示的cpu个数基于cpu子系统的quota来控制