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

啟用容器L3 Cache及內(nèi)存帶寬隔離

更新時(shí)間:

在Kubernetes集群中,多個(gè)Pod可能會(huì)混合在部署在同一節(jié)點(diǎn)上,共享宿主機(jī)的三級(jí)緩存L3 Cache(Last Level Cache)和內(nèi)存帶寬MBA(Memory Bandwidth Allocation),在資源緊張時(shí)產(chǎn)生資源爭搶。推薦您開啟L3 Cache及內(nèi)存帶寬的隔離能力,在資源競爭時(shí)優(yōu)先保障高優(yōu)應(yīng)用的服務(wù)質(zhì)量。

說明

為了幫助您更好地理解本文檔并使用本功能,推薦您參見Kubernetes官方文檔了解Pod Qos類為容器和 Pod 分配內(nèi)存資源等概念。

為什么需要容器L3 Cache及內(nèi)存帶寬隔離

為了充分利用節(jié)點(diǎn)資源,您可能會(huì)將多個(gè)Pod混合部署在同一臺(tái)機(jī)器上,共享宿主機(jī)的L3 Cache內(nèi)存帶寬。如果不進(jìn)行隔離控制,集群資源緊張時(shí),不同優(yōu)先級(jí)的Pod在使用L3 Cache和內(nèi)存帶寬等資源時(shí)可能會(huì)出現(xiàn)資源競爭,導(dǎo)致高優(yōu)任務(wù)無法得到足夠的資源保障,繼而使得服務(wù)質(zhì)量受到影響。

RDT(Resource Director Technology)提供了對(duì)不同優(yōu)先級(jí)應(yīng)用的資源隔離能力。您可以通過ConfigMap開啟L3 Cache及MBA隔離功能,并在BE類型Pod的YAML中聲明可使用的L3 Cache和MBA資源量,以有效保障LS應(yīng)用的服務(wù)質(zhì)量。

前提條件

費(fèi)用說明

ack-koordinator組件本身的安裝和使用是免費(fèi)的,不過需要注意的是,在以下場景中可能產(chǎn)生額外的費(fèi)用:

  • ack-koordinator是非托管組件,安裝后將占用Worker節(jié)點(diǎn)資源。您可以在安裝組件時(shí)配置各模塊的資源申請(qǐng)量。

  • ack-koordinator默認(rèn)會(huì)將資源畫像、精細(xì)化調(diào)度等功能的監(jiān)控指標(biāo)以Prometheus的格式對(duì)外透出。若您配置組件時(shí)開啟了ACK-Koordinator開啟Prometheus監(jiān)控指標(biāo)選項(xiàng)并使用了阿里云Prometheus服務(wù),這些指標(biāo)將被視為自定義指標(biāo)并產(chǎn)生相應(yīng)費(fèi)用。具體費(fèi)用取決于您的集群規(guī)模和應(yīng)用數(shù)量等因素。建議您在啟用此功能前,仔細(xì)閱讀阿里云Prometheus計(jì)費(fèi)說明,了解自定義指標(biāo)的免費(fèi)額度和收費(fèi)策略。您可以通過賬單和用量查詢,監(jiān)控和管理您的資源使用情況。

步驟一:檢查節(jié)點(diǎn)內(nèi)核是否已開啟RDT

在使用容器L3 Cache及內(nèi)存帶寬隔離功能前,您需要確保已開啟內(nèi)核RDT能力。

  1. 執(zhí)行以下命令,查看內(nèi)核RDT能力是否開啟。

    cat /proc/cmdline

    預(yù)期輸出:

    #其他內(nèi)容已省略,本示例僅顯示BOOT_IMAGE字段的RDT部分。
    BOOT_IMAGE=... rdt=cmt,l3cat,l3cdp,mba

    若輸出內(nèi)容中包含l3catmba選項(xiàng),表示內(nèi)核RDT能力已開啟;若不包含,請(qǐng)執(zhí)行下一步操作。

  2. 開啟內(nèi)核RDT能力。

    1. 編輯/etc/default/grub文件,在GRUB_CMDLINE_LINUX字段增加RDT相關(guān)配置。

      # 其余內(nèi)容已省略,本示例僅顯示GRUB_CMDLINE_LINUX字段的RDT部分。
      GRUB_CMDLINE_LINUX="... rdt=cmt,mbmtotal,mbmlocal,l3cat,l3cdp,mba" 
      重要

      請(qǐng)使用空格符將新增的RDT配置與其他內(nèi)容進(jìn)行分隔。

    2. 執(zhí)行以下命令,生成新版本grub.cfg文件。

      # 文件路徑以實(shí)際情況為準(zhǔn)。
      sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    3. 執(zhí)行以下命令,重啟節(jié)點(diǎn)。

      sudo systemctl reboot

步驟二:使用L3 Cache及MBA隔離功能

內(nèi)核RDT開啟后,您可以在集群維度通過ConfigMap啟用L3 Cache及MBA隔離功能。您也可以自行配置不同QoS類Pod可使用的L3 Cache和MBA資源比例,實(shí)現(xiàn)更靈活的、更精細(xì)化的資源管理。啟用后,您可以在Pod YAML中聲明其QoS級(jí)別,約束可使用L3 Cache及MBA資源量。

  1. 使用以下YAML內(nèi)容,創(chuàng)建configmap.yaml文件。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: ack-slo-config
      namespace: kube-system
    data:
      resource-qos-config: |
        {
          "clusterStrategy": {
            "beClass": {
              "resctrlQOS": {
                "enable": true # 配置為true,開啟對(duì)BE類型Pod的L3 Cache及MBA隔離機(jī)制。
              }
            }
          }
        }
  2. 查看命名空間kube-system下是否存在ConfigMap ack-slo-config

    • 存在:使用PATCH方式進(jìn)行更新,避免干擾ConfigMap中其他配置項(xiàng)。

      kubectl patch cm -n kube-system ack-slo-config --patch "$(cat configmap.yaml)"
    • 不存在:執(zhí)行以下命令創(chuàng)建ConfigMap。

      kubectl apply -f configmap.yaml
  3. (可選)使用以下YAML內(nèi)容,配置高級(jí)參數(shù),按照QoS進(jìn)行精細(xì)化配置。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: ack-slo-config
      namespace: kube-system
    data:
      resource-qos-config: |
        {
          "clusterStrategy": {
            "lsClass": {
              "resctrlQOS": {
                "enable": true,
                "catRangeEndPercent": 100,
                "mbaPercent": 100
              }
            },
            "beClass": {
              "resctrlQOS": {
                "enable": true,
                "catRangeEndPercent": 30,
                "mbaPercent": 100
              }
            }
          }
        }

    主要參數(shù)說明如下。

    參數(shù)

    類型

    取值范圍

    說明

    enable

    Boolean

    • true

    • false

    • true:集群開啟L3 Cache及MBA的隔離能力。

    • false:集群關(guān)閉L3 Cache及MBA的隔離能力。

    catRangeEndPercent

    Int

    [0, 100]

    對(duì)應(yīng)QoS可以使用的L3 Cache比例。單位為百分比。LS等級(jí)默認(rèn)值為100,BE等級(jí)默認(rèn)值為30

    mbaPercent

    Int

    [0, 100]

    對(duì)應(yīng)QoS可以使用的MBA比例。單位為百分比。當(dāng)前MBA只支持以10%的粒度進(jìn)行調(diào)節(jié),LS等級(jí)和BE等級(jí)的默認(rèn)值均為100

  4. 參見以下YAML內(nèi)容,約束BE Pod對(duì)L3 Cache及MBA資源的使用,創(chuàng)建pod-demo.yaml。

    說明

    如需在工作負(fù)載(例如Deployment)中配置,請(qǐng)?jiān)?code data-tag="code" class="code">template.metadata字段下配置Pod對(duì)應(yīng)的Annotation。

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-demo
      labels:
        koordinator.sh/qosClass: 'BE' # 指定Pod的QoS級(jí)別為BE。
    spec:
      containers:
      - name: pod-demo
        image: polinux/stress
        resources:
          requests:
            cpu: 1
            memory: "50Mi"
          limits:
            cpu: 1
            memory: "1Gi"
        command: ["stress"]
        args: ["--vm", "1", "--vm-bytes", "256M", "-c", "2", "--vm-hang", "1"]
  5. 執(zhí)行以下命令,將pod-demo.yaml部署到集群中。

    kubectl apply -f pod-demo.yaml