日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

增強容器資源可見性

從Alibaba Cloud Linux 2(內核版本4.19.91-22.2.al7)和Alibaba Cloud Linux 3(內核版本5.10.46-7.al8)開始,在內核層面提供了容器資源視圖功能的相關接口,實現對容器資源的可見性增強。本文將對該功能的接口進行說明,并提供示例場景供您參考。

背景信息

Alibaba Cloud Linux的容器資源視圖功能接口默認狀態下是未啟動的,當您在啟動該功能后,如果在容器中使用topfree等命令,讓容器讀取以下接口的數據時,將直接獲取容器資源信息,而不是獲取容器所在的宿主機(即ECS實例)資源信息。

  • /proc/cpuinfo

  • /proc/meminfo

  • /sys/devices/system/cpu/online

接口說明

接口

說明

/proc/sys/kernel/rich_container_enable

該接口控制容器資源視圖功能是否開啟。取值范圍:

  • 0:關閉容器資源視圖功能。

  • 1:開啟容器資源視圖功能。

默認值:0

/proc/sys/kernel/rich_container_source

該接口控制cgroup接口的數據源。取值范圍:

  • 0:使用指針current所在的cgroup接口作為數據源。

  • 1:使用child reaper(即當前PID Namespace的1號進程)所在的cgroup作為數據源。

默認值:0

/proc/sys/kernel/rich_container_cpuinfo_source

該接口控制/proc/cpuinfo接口以及/sys/devices/system/cpu/online接口顯示的CPU數量。取值范圍:

  • 0:使用Kubernetes的Limit數據,即cpu cgroup的quotaperiod的比值(quota/period),如果 quota為 -1,則會使用cpuset.cpus接口中的CPU數據源。

  • 1:使用cpuset.cpus接口中的CPU數據源。

  • 2:使用cpu.shares 值除以 /proc/sys/kernel/rich_container_cpuinfo_sharesbase值的向上取整后的數據(原始數據如果包含小數,則整數位加1后,只取整數作為最終數據,例如:原始數據為1.1,則最終數據為2)。最終數據最多不超過實際在線CPU的數量。

默認值:0

/proc/sys/kernel/rich_container_cpuinfo_sharesbase

/proc/sys/kernel/rich_container_cpuinfo_source接口的取值為2時,需要使用該接口作為計算公式的一部分獲取最終數據。取值范圍:大于等于2的整數值。

默認值:1024

接口使用示例

本示例中,已在一臺Linux實例中部署Docker,并創建了一個內存大小為1 GB的容器。

  • 如果您未開啟容器資源視圖功能,即/proc/sys/kernel/rich_container_enable接口的值為0。當您在容器中運行free -m命令時,查看到的資源信息如下圖所示,該信息為容器所在的宿主機(Linux實例)資源信息。free

  • 如果您在宿主機(Linux實例)中運行命令echo 1 > /proc/sys/kernel/rich_container_enable開啟了容器資源視圖功能,當您在容器中運行free -m命令時,查看到的資源信息如下圖所示,該信息為容器資源信息。free

特殊場景說明

一般情況下,開啟容器資源視圖功能后,使用相關接口的默認值即可滿足常規需求,但您需要注意以下特殊場景的接口配置:

對于非共享PID Namespace的Pod,其中的每一個容器都是獨立的PID Namespace,如果使用systemd啟動某個特權容器,容器的進程號為1號,則采集監控數據的任務可能位于容器的某個子cgroup中,而不是根cgroup。

例如,當您通過SSH登錄容器并運行cat /proc/cpuinfo命令后:

  • 如果/proc/sys/kernel/rich_container_source取值為默認值0,則指針current實際是位于容器的sshd.service所創建的子cgroup中,此時查看的結果為錯誤數據。

  • 如果您運行echo 1 > /proc/sys/kernel/rich_container_source命令,使用child reaper(即當前PID Namespace的1號進程)所在的cgroup作為數據源,即可查看到正確的數據。