2022 februárjában az Amazon Web Services hozzátette NVIDIA GPU metrikák támogatása az Amazon CloudWatch szolgáltatásban, lehetővé téve a metrikák leküldését a Amazon CloudWatch Agent nak nek amazonfelhőóra és figyelje a kódot az optimális GPU kihasználtság érdekében. Azóta ezt a funkciót számos menedzselt Amazon Machine Image-ünkbe (AMI) integráltuk, mint például a Deep Learning AMI és a AWS ParallelCluster AMI. A GPU-kihasználtság példányszintű mérőszámainak megszerzéséhez használhatja a Packert vagy az Amazon ImageBuilder-t saját egyéni AMI-jének indításához, és különféle felügyelt szolgáltatásajánlatokban való felhasználásához, mint pl. AWS köteg, Amazon Elastic Container Service (Amazon ECS), ill Amazon Elastic Kubernetes szolgáltatás (Amazon EKS). Számos konténer-alapú szolgáltatásajánlat és munkaterhelés esetén azonban ideális a kihasználtsági mutatók rögzítése tároló, pod vagy névtér szinten.
Ez a bejegyzés részletezi a tárolóalapú GPU-metrikák beállítását, és példát mutat be ezeknek a mutatóknak az EKS podokból történő gyűjtésére.
Megoldás áttekintése
A konténer alapú GPU-metrikák bemutatásához EKS-fürtöt hozunk létre g5.2xlarge
példányok; ez azonban minden támogatott NVIDIA gyorsított példánycsaláddal működik.
Az NVIDIA GPU operátort telepítjük a GPU erőforrások és a NVIDIA DCGM exportőr a GPU-metrikák gyűjtésének engedélyezéséhez. Ezután két architektúrát vizsgálunk. Az első összekapcsolja az NVIDIA DCGM Exporter és a CloudWatch mérőszámait egy CloudWatch-ügynökön keresztül, amint az a következő ábrán látható.
A második architektúra (lásd a következő diagramot) a DCGM Exporter és a metrikákat köti össze Prométheusz, akkor használjuk a grafana irányítópultot a mutatók megjelenítéséhez.
Előfeltételek
A teljes verem ebből a bejegyzésből való reprodukálásának leegyszerűsítése érdekében olyan tárolót használunk, amely már telepítve van az összes szükséges eszközzel (aws cli, eksctl, helm stb.). A klónozás érdekében a konténerprojekt a GitHubtól, szükséged lesz csoportos it. A konténer felépítéséhez és működtetéséhez szüksége lesz Dokkmunkás. Az architektúra üzembe helyezéséhez szüksége lesz AWS hitelesítő adatok. A Kubernetes-szolgáltatásokhoz való hozzáférés engedélyezéséhez port-továbbítással is szüksége lesz kubectl.
Ezek az előfeltételek telepíthetők a helyi gépre, EC2 példány val vel SZÉP DCVvagy AWS Cloud9. Ebben a bejegyzésben a c5.2xlarge
Cloud9 példány a 40GB
helyi tárolási mennyiség. A Cloud9 használatakor tiltsa le az AWS által kezelt ideiglenes hitelesítési adatokat a következő címen: Cloud9->Preferences->AWS Settings
az alábbi képernyőképen látható módon.
Építse meg és futtassa az aws-do-eks tárolót
Nyisson meg egy terminálhéjat a kívánt környezetben, és futtassa a következő parancsokat:
git clone https://github.com/aws-samples/aws-do-eks
cd aws-do-eks
./build.sh
./run.sh
./exec.sh
Az eredmény a következő:
Most már van egy shell egy tárolókörnyezetben, amely az alábbi feladatok elvégzéséhez szükséges összes eszközzel rendelkezik. „aws-do-eks shellként” fogjuk hivatkozni rá. A parancsértelmező következő szakaszaiban szereplő parancsokat fogja futtatni, hacsak nincs külön utasítás.
Hozzon létre egy EKS-fürtöt egy csomópontcsoporttal
Ez a csoport egy Ön által választott GPU-példánycsaládot tartalmaz; ebben a példában a g5.2xlarge
példány típusa.
A aws-do-eks projekt fürtkonfigurációk gyűjteményével érkezik. Egyetlen konfigurációmódosítással beállíthatja a kívánt fürtkonfigurációt.
- Fuss a konténerhéjban
./env-config.sh
majd állítsa be CONF=conf/eksctl/yaml/eks-gpu-g5.yaml
- A fürt konfigurációjának ellenőrzéséhez futtassa
./eks-config.sh
A következő fürt jegyzéket kell látnia:
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata: name: do-eks-yaml-g5 version: "1.25" region: us-east-1
availabilityZones: - us-east-1a - us-east-1b - us-east-1c - us-east-1d
managedNodeGroups: - name: sys instanceType: m5.xlarge desiredCapacity: 1 iam: withAddonPolicies: autoScaler: true cloudWatch: true - name: g5 instanceType: g5.2xlarge instancePrefix: g5-2xl privateNetworking: true efaEnabled: false minSize: 0 desiredCapacity: 1 maxSize: 10 volumeSize: 80 iam: withAddonPolicies: cloudWatch: true
iam: withOIDC: true
- A fürt létrehozásához futtassa a következő parancsot a tárolóban
A kimenet a következő:
root@e5ecb162812f:/eks# ./eks-create.sh /eks/impl/eksctl/yaml /eks ./eks-create.sh Mon May 22 20:50:59 UTC 2023
Creating cluster using /eks/conf/eksctl/yaml/eks-gpu-g5.yaml ... eksctl create cluster -f /eks/conf/eksctl/yaml/eks-gpu-g5.yaml 2023-05-22 20:50:59 [ℹ] eksctl version 0.133.0
2023-05-22 20:50:59 [ℹ] using region us-east-1
2023-05-22 20:50:59 [ℹ] subnets for us-east-1a - public:192.168.0.0/19 private:192.168.128.0/19
2023-05-22 20:50:59 [ℹ] subnets for us-east-1b - public:192.168.32.0/19 private:192.168.160.0/19
2023-05-22 20:50:59 [ℹ] subnets for us-east-1c - public:192.168.64.0/19 private:192.168.192.0/19
2023-05-22 20:50:59 [ℹ] subnets for us-east-1d - public:192.168.96.0/19 private:192.168.224.0/19
2023-05-22 20:50:59 [ℹ] nodegroup "sys" will use "" [AmazonLinux2/1.25]
2023-05-22 20:50:59 [ℹ] nodegroup "g5" will use "" [AmazonLinux2/1.25]
2023-05-22 20:50:59 [ℹ] using Kubernetes version 1.25
2023-05-22 20:50:59 [ℹ] creating EKS cluster "do-eks-yaml-g5" in "us-east-1" region with managed nodes
2023-05-22 20:50:59 [ℹ] 2 nodegroups (g5, sys) were included (based on the include/exclude rules)
2023-05-22 20:50:59 [ℹ] will create a CloudFormation stack for cluster itself and 0 nodegroup stack(s)
2023-05-22 20:50:59 [ℹ] will create a CloudFormation stack for cluster itself and 2 managed nodegroup stack(s)
2023-05-22 20:50:59 [ℹ] if you encounter any issues, check CloudFormation console or try 'eksctl utils describe-stacks --region=us-east-1 --cluster=do-eks-yaml-g5'
2023-05-22 20:50:59 [ℹ] Kubernetes API endpoint access will use default of {publicAccess=true, privateAccess=false} for cluster "do-eks-yaml-g5" in "us-east-1"
2023-05-22 20:50:59 [ℹ] CloudWatch logging will not be enabled for cluster "do-eks-yaml-g5" in "us-east-1"
2023-05-22 20:50:59 [ℹ] you can enable it with 'eksctl utils update-cluster-logging --enable-types={SPECIFY-YOUR-LOG-TYPES-HERE (e.g. all)} --region=us-east-1 --cluster=do-eks-yaml-g5'
2023-05-22 20:50:59 [ℹ] 2 sequential tasks: { create cluster control plane "do-eks-yaml-g5", 2 sequential sub-tasks: { 4 sequential sub-tasks: { wait for control plane to become ready, associate IAM OIDC provider, 2 sequential sub-tasks: { create IAM role for serviceaccount "kube-system/aws-node", create serviceaccount "kube-system/aws-node", }, restart daemonset "kube-system/aws-node", }, 2 parallel sub-tasks: { create managed nodegroup "sys", create managed nodegroup "g5", }, } }
2023-05-22 20:50:59 [ℹ] building cluster stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 20:51:00 [ℹ] deploying stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 20:51:30 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 20:52:00 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 20:53:01 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 20:54:01 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 20:55:01 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 20:56:02 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 20:57:02 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 20:58:02 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 20:59:02 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 21:00:03 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 21:01:03 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 21:02:03 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 21:03:04 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-cluster"
2023-05-22 21:05:07 [ℹ] building iamserviceaccount stack "eksctl-do-eks-yaml-g5-addon-iamserviceaccount-kube-system-aws-node"
2023-05-22 21:05:10 [ℹ] deploying stack "eksctl-do-eks-yaml-g5-addon-iamserviceaccount-kube-system-aws-node"
2023-05-22 21:05:10 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-addon-iamserviceaccount-kube-system-aws-node"
2023-05-22 21:05:40 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-addon-iamserviceaccount-kube-system-aws-node"
2023-05-22 21:05:40 [ℹ] serviceaccount "kube-system/aws-node" already exists
2023-05-22 21:05:41 [ℹ] updated serviceaccount "kube-system/aws-node"
2023-05-22 21:05:41 [ℹ] daemonset "kube-system/aws-node" restarted
2023-05-22 21:05:41 [ℹ] building managed nodegroup stack "eksctl-do-eks-yaml-g5-nodegroup-sys"
2023-05-22 21:05:41 [ℹ] building managed nodegroup stack "eksctl-do-eks-yaml-g5-nodegroup-g5"
2023-05-22 21:05:42 [ℹ] deploying stack "eksctl-do-eks-yaml-g5-nodegroup-sys"
2023-05-22 21:05:42 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-nodegroup-sys"
2023-05-22 21:05:42 [ℹ] deploying stack "eksctl-do-eks-yaml-g5-nodegroup-g5"
2023-05-22 21:05:42 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-nodegroup-g5"
2023-05-22 21:06:12 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-nodegroup-sys"
2023-05-22 21:06:12 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-nodegroup-g5"
2023-05-22 21:06:55 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-nodegroup-sys"
2023-05-22 21:07:11 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-nodegroup-g5"
2023-05-22 21:08:29 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-nodegroup-g5"
2023-05-22 21:08:45 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-nodegroup-sys"
2023-05-22 21:09:52 [ℹ] waiting for CloudFormation stack "eksctl-do-eks-yaml-g5-nodegroup-g5"
2023-05-22 21:09:53 [ℹ] waiting for the control plane to become ready
2023-05-22 21:09:53 [✔] saved kubeconfig as "/root/.kube/config"
2023-05-22 21:09:53 [ℹ] 1 task: { install Nvidia device plugin }
W0522 21:09:54.155837 1668 warnings.go:70] spec.template.metadata.annotations[scheduler.alpha.kubernetes.io/critical-pod]: non-functional in v1.16+; use the "priorityClassName" field instead
2023-05-22 21:09:54 [ℹ] created "kube-system:DaemonSet.apps/nvidia-device-plugin-daemonset"
2023-05-22 21:09:54 [ℹ] as you are using the EKS-Optimized Accelerated AMI with a GPU-enabled instance type, the Nvidia Kubernetes device plugin was automatically installed. to skip installing it, use --install-nvidia-plugin=false.
2023-05-22 21:09:54 [✔] all EKS cluster resources for "do-eks-yaml-g5" have been created
2023-05-22 21:09:54 [ℹ] nodegroup "sys" has 1 node(s)
2023-05-22 21:09:54 [ℹ] node "ip-192-168-18-137.ec2.internal" is ready
2023-05-22 21:09:54 [ℹ] waiting for at least 1 node(s) to become ready in "sys"
2023-05-22 21:09:54 [ℹ] nodegroup "sys" has 1 node(s)
2023-05-22 21:09:54 [ℹ] node "ip-192-168-18-137.ec2.internal" is ready
2023-05-22 21:09:55 [ℹ] kubectl command should work with "/root/.kube/config", try 'kubectl get nodes'
2023-05-22 21:09:55 [✔] EKS cluster "do-eks-yaml-g5" in "us-east-1" region is ready Mon May 22 21:09:55 UTC 2023
Done creating cluster using /eks/conf/eksctl/yaml/eks-gpu-g5.yaml /eks
- A fürt sikeres létrehozásának ellenőrzéséhez futtassa a következő parancsot
kubectl get nodes -L node.kubernetes.io/instance-type
A kimenet hasonló a következőhöz:
NAME STATUS ROLES AGE VERSION INSTANCE_TYPE
ip-192-168-18-137.ec2.internal Ready <none> 47m v1.25.9-eks-0a21954 m5.xlarge
ip-192-168-214-241.ec2.internal Ready <none> 46m v1.25.9-eks-0a21954 g5.2xlarge
Ebben a példában egy m5.xlarge és egy g5.2xlarge példány van a fürtünkben; ezért két csomópontot látunk felsorolva az előző kimenetben.
A fürt létrehozása során az NVIDIA eszközbővítmény telepítésre kerül. A fürt létrehozása után el kell távolítania, mert a NVIDIA GPU operátor helyette.
- Törölje a bővítményt a következő paranccsal
kubectl -n kube-system delete daemonset nvidia-device-plugin-daemonset
A következő kimenetet kapjuk:
daemonset.apps "nvidia-device-plugin-daemonset" deleted
Telepítse az NVIDIA Helm repót
Telepítse az NVIDIA Helm repót a következő paranccsal:
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia && helm repo update
Telepítse a DCGM exportőrt az NVIDIA GPU Operatorral
A DCGM exportőr üzembe helyezéséhez hajtsa végre a következő lépéseket:
- Készítse elő a DCGM exportőr GPU metrika konfigurációját
curl https://raw.githubusercontent.com/NVIDIA/dcgm-exporter/main/etc/dcp-metrics-included.csv > dcgm-metrics.csv
Lehetősége van szerkeszteni a dcgm-metrics.csv
fájlt. Igény szerint bármilyen mérőszámot hozzáadhat vagy eltávolíthat.
- Hozza létre a gpu-operator névteret és a DCGM exportáló ConfigMap-et
kubectl create namespace gpu-operator && /
kubectl create configmap metrics-config -n gpu-operator --from-file=dcgm-metrics.csv
A kimenet a következő:
namespace/gpu-operator created
configmap/metrics-config created
- Alkalmazza a GPU operátort az EKS-fürtre
helm install --wait --generate-name -n gpu-operator --create-namespace nvidia/gpu-operator --set dcgmExporter.config.name=metrics-config --set dcgmExporter.env[0].name=DCGM_EXPORTER_COLLECTORS --set dcgmExporter.env[0].value=/etc/dcgm-exporter/dcgm-metrics.csv --set toolkit.enabled=false
A kimenet a következő:
NAME: gpu-operator-1684795140
LAST DEPLOYED: Day Month Date HH:mm:ss YYYY
NAMESPACE: gpu-operator
STATUS: deployed
REVISION: 1
TEST SUITE: None
- Győződjön meg arról, hogy a DCGM exportőr pod fut
kubectl -n gpu-operator get pods | grep dcgm
A kimenet a következő:
nvidia-dcgm-exporter-lkmfr 1/1 Running 0 1m
Ha megvizsgálja a naplókat, látnia kell a “Starting webserver”
üzenet:
kubectl -n gpu-operator logs -f $(kubectl -n gpu-operator get pods | grep dcgm | cut -d ' ' -f 1)
A kimenet a következő:
Defaulted container "nvidia-dcgm-exporter" out of: nvidia-dcgm-exporter, toolkit-validation (init)
time="2023-05-22T22:40:08Z" level=info msg="Starting dcgm-exporter"
time="2023-05-22T22:40:08Z" level=info msg="DCGM successfully initialized!"
time="2023-05-22T22:40:08Z" level=info msg="Collecting DCP Metrics"
time="2023-05-22T22:40:08Z" level=info msg="No configmap data specified, falling back to metric file /etc/dcgm-exporter/dcgm-metrics.csv"
time="2023-05-22T22:40:08Z" level=info msg="Initializing system entities of type: GPU"
time="2023-05-22T22:40:09Z" level=info msg="Initializing system entities of type: NvSwitch"
time="2023-05-22T22:40:09Z" level=info msg="Not collecting switch metrics: no switches to monitor"
time="2023-05-22T22:40:09Z" level=info msg="Initializing system entities of type: NvLink"
time="2023-05-22T22:40:09Z" level=info msg="Not collecting link metrics: no switches to monitor"
time="2023-05-22T22:40:09Z" level=info msg="Kubernetes metrics collection enabled!"
time="2023-05-22T22:40:09Z" level=info msg="Pipeline starting"
time="2023-05-22T22:40:09Z" level=info msg="Starting webserver"
Az NVIDIA DCGM Exporter egy Prometheus metrika végpontot tesz közzé, amelyet a CloudWatch ügynök be tud fogadni. A végpont megtekintéséhez használja a következő parancsot:
kubectl -n gpu-operator get services | grep dcgm
A következő kimenetet kapjuk:
nvidia-dcgm-exporter ClusterIP 10.100.183.207 <none> 9400/TCP 10m
- A GPU-kihasználtság generálásához telepítünk egy pod-ot, amelyen a gpu-burn kétkomponensű
kubectl apply -f https://raw.githubusercontent.com/aws-samples/aws-do-eks/main/Container-Root/eks/deployment/gpu-metrics/gpu-burn-deployment.yaml
A kimenet a következő:
deployment.apps/gpu-burn created
Ez a telepítés egyetlen GPU-t használ, hogy 100 másodpercig 20%-os, majd 0 másodpercig 20%-os kihasználtságú folyamatos mintát hozzon létre.
- A végpont működésének biztosításához futtathat egy ideiglenes tárolót, amely curl segítségével olvassa be a tartalmát
http://nvidia-dcgm-exporter:9400/metrics
kubectl -n gpu-operator run -it --rm curl --restart='Never' --image=curlimages/curl --command -- curl http://nvidia-dcgm-exporter:9400/metrics
A következő kimenetet kapjuk:
# HELP DCGM_FI_DEV_SM_CLOCK SM clock frequency (in MHz).
# TYPE DCGM_FI_DEV_SM_CLOCK gauge
DCGM_FI_DEV_SM_CLOCK{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 1455
# HELP DCGM_FI_DEV_MEM_CLOCK Memory clock frequency (in MHz).
# TYPE DCGM_FI_DEV_MEM_CLOCK gauge
DCGM_FI_DEV_MEM_CLOCK{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 6250
# HELP DCGM_FI_DEV_GPU_TEMP GPU temperature (in C).
# TYPE DCGM_FI_DEV_GPU_TEMP gauge
DCGM_FI_DEV_GPU_TEMP{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 65
# HELP DCGM_FI_DEV_POWER_USAGE Power draw (in W).
# TYPE DCGM_FI_DEV_POWER_USAGE gauge
DCGM_FI_DEV_POWER_USAGE{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 299.437000
# HELP DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION Total energy consumption since boot (in mJ).
# TYPE DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION counter
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 15782796862
# HELP DCGM_FI_DEV_PCIE_REPLAY_COUNTER Total number of PCIe retries.
# TYPE DCGM_FI_DEV_PCIE_REPLAY_COUNTER counter
DCGM_FI_DEV_PCIE_REPLAY_COUNTER{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0
# HELP DCGM_FI_DEV_GPU_UTIL GPU utilization (in %).
# TYPE DCGM_FI_DEV_GPU_UTIL gauge
DCGM_FI_DEV_GPU_UTIL{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 100
# HELP DCGM_FI_DEV_MEM_COPY_UTIL Memory utilization (in %).
# TYPE DCGM_FI_DEV_MEM_COPY_UTIL gauge
DCGM_FI_DEV_MEM_COPY_UTIL{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 38
# HELP DCGM_FI_DEV_ENC_UTIL Encoder utilization (in %).
# TYPE DCGM_FI_DEV_ENC_UTIL gauge
DCGM_FI_DEV_ENC_UTIL{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0
# HELP DCGM_FI_DEV_DEC_UTIL Decoder utilization (in %).
# TYPE DCGM_FI_DEV_DEC_UTIL gauge
DCGM_FI_DEV_DEC_UTIL{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0
# HELP DCGM_FI_DEV_XID_ERRORS Value of the last XID error encountered.
# TYPE DCGM_FI_DEV_XID_ERRORS gauge
DCGM_FI_DEV_XID_ERRORS{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0
# HELP DCGM_FI_DEV_FB_FREE Framebuffer memory free (in MiB).
# TYPE DCGM_FI_DEV_FB_FREE gauge
DCGM_FI_DEV_FB_FREE{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 2230
# HELP DCGM_FI_DEV_FB_USED Framebuffer memory used (in MiB).
# TYPE DCGM_FI_DEV_FB_USED gauge
DCGM_FI_DEV_FB_USED{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 20501
# HELP DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTAL Total number of NVLink bandwidth counters for all lanes.
# TYPE DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTAL counter
DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTAL{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0
# HELP DCGM_FI_DEV_VGPU_LICENSE_STATUS vGPU License status
# TYPE DCGM_FI_DEV_VGPU_LICENSE_STATUS gauge
DCGM_FI_DEV_VGPU_LICENSE_STATUS{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0
# HELP DCGM_FI_DEV_UNCORRECTABLE_REMAPPED_ROWS Number of remapped rows for uncorrectable errors
# TYPE DCGM_FI_DEV_UNCORRECTABLE_REMAPPED_ROWS counter
DCGM_FI_DEV_UNCORRECTABLE_REMAPPED_ROWS{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0
# HELP DCGM_FI_DEV_CORRECTABLE_REMAPPED_ROWS Number of remapped rows for correctable errors
# TYPE DCGM_FI_DEV_CORRECTABLE_REMAPPED_ROWS counter
DCGM_FI_DEV_CORRECTABLE_REMAPPED_ROWS{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0
# HELP DCGM_FI_DEV_ROW_REMAP_FAILURE Whether remapping of rows has failed
# TYPE DCGM_FI_DEV_ROW_REMAP_FAILURE gauge
DCGM_FI_DEV_ROW_REMAP_FAILURE{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0
# HELP DCGM_FI_PROF_GR_ENGINE_ACTIVE Ratio of time the graphics engine is active (in %).
# TYPE DCGM_FI_PROF_GR_ENGINE_ACTIVE gauge
DCGM_FI_PROF_GR_ENGINE_ACTIVE{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0.808369
# HELP DCGM_FI_PROF_PIPE_TENSOR_ACTIVE Ratio of cycles the tensor (HMMA) pipe is active (in %).
# TYPE DCGM_FI_PROF_PIPE_TENSOR_ACTIVE gauge
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0.000000
# HELP DCGM_FI_PROF_DRAM_ACTIVE Ratio of cycles the device memory interface is active sending or receiving data (in %).
# TYPE DCGM_FI_PROF_DRAM_ACTIVE gauge
DCGM_FI_PROF_DRAM_ACTIVE{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 0.315787
# HELP DCGM_FI_PROF_PCIE_TX_BYTES The rate of data transmitted over the PCIe bus - including both protocol headers and data payloads - in bytes per second.
# TYPE DCGM_FI_PROF_PCIE_TX_BYTES gauge
DCGM_FI_PROF_PCIE_TX_BYTES{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 3985328
# HELP DCGM_FI_PROF_PCIE_RX_BYTES The rate of data received over the PCIe bus - including both protocol headers and data payloads - in bytes per second.
# TYPE DCGM_FI_PROF_PCIE_RX_BYTES gauge
DCGM_FI_PROF_PCIE_RX_BYTES{gpu="0",UUID="GPU-ff76466b-22fc-f7a9-abe2-ce3ac453b8b3",device="nvidia0",modelName="NVIDIA A10G",Hostname="nvidia-dcgm-exporter-48cwd",DCGM_FI_DRIVER_VERSION="470.182.03",container="main",namespace="kube-system",pod="gpu-burn-c68d8c774-ltg9s"} 21715174
pod "curl" deleted
Konfigurálja és telepítse a CloudWatch ügynököt
A CloudWatch ügynök konfigurálásához és üzembe helyezéséhez hajtsa végre a következő lépéseket:
- Töltse le a YAML fájlt és szerkessze
curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/k8s/1.3.15/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml
A fájl tartalmazza a cwagent configmap
és egy prometheus configmap
. Ennél a bejegyzésnél mindkettőt szerkesztjük.
- Szerkesztéséhez
prometheus-eks.yaml
filé
Nyissa meg a prometheus-eks.yaml
fájlt a kedvenc szerkesztőjében, és cserélje ki a cwagentconfig.json
szakasz a következő tartalommal:
apiVersion: v1
data: # cwagent json config cwagentconfig.json: | { "logs": { "metrics_collected": { "prometheus": { "prometheus_config_path": "/etc/prometheusconfig/prometheus.yaml", "emf_processor": { "metric_declaration": [ { "source_labels": ["Service"], "label_matcher": ".*dcgm.*", "dimensions": [["Service","Namespace","ClusterName","job","pod"]], "metric_selectors": [ "^DCGM_FI_DEV_GPU_UTIL$", "^DCGM_FI_DEV_DEC_UTIL$", "^DCGM_FI_DEV_ENC_UTIL$", "^DCGM_FI_DEV_MEM_CLOCK$", "^DCGM_FI_DEV_MEM_COPY_UTIL$", "^DCGM_FI_DEV_POWER_USAGE$", "^DCGM_FI_DEV_ROW_REMAP_FAILURE$", "^DCGM_FI_DEV_SM_CLOCK$", "^DCGM_FI_DEV_XID_ERRORS$", "^DCGM_FI_PROF_DRAM_ACTIVE$", "^DCGM_FI_PROF_GR_ENGINE_ACTIVE$", "^DCGM_FI_PROF_PCIE_RX_BYTES$", "^DCGM_FI_PROF_PCIE_TX_BYTES$", "^DCGM_FI_PROF_PIPE_TENSOR_ACTIVE$" ] } ] } } }, "force_flush_interval": 5 } }
- A
prometheus
config szakaszban fűzze hozzá a következő feladatdefiníciót a DCGM exportőrhöz
- job_name: 'kubernetes-pod-dcgm-exporter' sample_limit: 10000 metrics_path: /api/v1/metrics/prometheus kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_container_name] action: keep regex: '^DCGM.*$' - source_labels: [__address__] action: replace regex: ([^:]+)(?::d+)? replacement: ${1}:9400 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - action: replace source_labels: - __meta_kubernetes_namespace target_label: Namespace - source_labels: [__meta_kubernetes_pod] action: replace target_label: pod - action: replace source_labels: - __meta_kubernetes_pod_container_name target_label: container_name - action: replace source_labels: - __meta_kubernetes_pod_controller_name target_label: pod_controller_name - action: replace source_labels: - __meta_kubernetes_pod_controller_kind target_label: pod_controller_kind - action: replace source_labels: - __meta_kubernetes_pod_phase target_label: pod_phase - action: replace source_labels: - __meta_kubernetes_pod_node_name target_label: NodeName
- Mentse el a fájlt és alkalmazza a
cwagent-dcgm
konfigurációt a fürthöz
kubectl apply -f ./prometheus-eks.yaml
A következő kimenetet kapjuk:
namespace/amazon-cloudwatch created
configmap/prometheus-cwagentconfig created
configmap/prometheus-config created
serviceaccount/cwagent-prometheus created
clusterrole.rbac.authorization.k8s.io/cwagent-prometheus-role created
clusterrolebinding.rbac.authorization.k8s.io/cwagent-prometheus-role-binding created
deployment.apps/cwagent-prometheus created
- Győződjön meg arról, hogy a CloudWatch ügynökpod fut
kubectl -n amazon-cloudwatch get pods
A következő kimenetet kapjuk:
NAME READY STATUS RESTARTS AGE
cwagent-prometheus-7dfd69cc46-s4cx7 1/1 Running 0 15m
Vizualizálja a mutatókat a CloudWatch konzolon
A mutatók CloudWatch szolgáltatásban való megjelenítéséhez hajtsa végre a következő lépéseket:
- A CloudWatch konzolon a Metrics a navigációs ablakban válassza a lehetőséget Minden mérőszám
- A Egyéni névterek szakaszban válassza ki az új bejegyzést ContainerInsights/Prometheus
További információk a ContainerInsights/Prometheus névtér, lásd További Prometheus-források lekaparása és a mutatók importálása.
- Fúrjon le a mérőszámok nevéhez, és válasszon
DCGM_FI_DEV_GPU_UTIL
- A Grafikonos mutatók fül, állítsa be időszak nak nek 5 másodperc
- Állítsa a frissítési intervallumot 10 másodpercre
Látni fogja a DCGM exportőrtől gyűjtött mutatókat, amelyek megjelenítik a gpu-burn
minta be- és kikapcsolása 20 másodpercenként.
A Tallózás lapon megtekintheti az adatokat, beleértve az egyes metrikák sorba rendezési nevét.
Az EKS API metaadatokat kombinálták a DCGM-metrikák adataival, ami a pod-alapú GPU-metrikákat eredményezte.
Ezzel lezárult a DCGM-metrikák CloudWatch-ba a CloudWatch ügynökön keresztül történő exportálása első megközelítése.
A következő részben konfiguráljuk a második architektúrát, amely a DCGM-metrikákat a Prometheusba exportálja, és a Grafana segítségével megjelenítjük azokat.
A Prometheus és a Grafana segítségével megjelenítheti a DCGM GPU-mutatóit
Hajtsa végre a következő lépéseket:
- Adja hozzá a Prometheus közösség sisak diagramját
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
Ezen a diagramon a Prometheus és a Grafana is szerepel. Az install parancs futtatása előtt módosítanunk kell a diagramot.
- Mentse el a diagram konfigurációs értékeit egy fájlba
/tmp
helm inspect values prometheus-community/kube-prometheus-stack > /tmp/kube-prometheus-stack.values
- Szerkessze a char konfigurációs fájlt
Szerkessze a mentett fájlt (/tmp/kube-prometheus-stack.values
), és állítsa be a következő opciót a beállítás nevének megkeresésével és az érték beállításával:
prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false
- Adja hozzá a következő ConfigMap-et a
additionalScrapeConfigs
szakasz
additionalScrapeConfigs:
- job_name: gpu-metrics scrape_interval: 1s metrics_path: /metrics scheme: http kubernetes_sd_configs: - role: endpoints namespaces: names: - gpu-operator relabel_configs: - source_labels: [__meta_kubernetes_pod_node_name] action: replace target_label: kubernetes_node
- Telepítse a Prometheus-vermet a frissített értékekkel
helm install prometheus-community/kube-prometheus-stack
--create-namespace --namespace prometheus
--generate-name
--values /tmp/kube-prometheus-stack.values
A következő kimenetet kapjuk:
NAME: kube-prometheus-stack-1684965548
LAST DEPLOYED: Wed May 24 21:59:14 2023
NAMESPACE: prometheus
STATUS: deployed
REVISION: 1
NOTES:
kube-prometheus-stack has been installed. Check its status by running: kubectl --namespace prometheus get pods -l "release=kube-prometheus-stack-1684965548" Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.
- Győződjön meg arról, hogy a Prometheus hüvelyek futnak
kubectl get pods -n prometheus
A következő kimenetet kapjuk:
NAME READY STATUS RESTARTS AGE
alertmanager-kube-prometheus-stack-1684-alertmanager-0 2/2 Running 0 6m55s
kube-prometheus-stack-1684-operator-6c87649878-j7v55 1/1 Running 0 6m58s
kube-prometheus-stack-1684965548-grafana-dcd7b4c96-bzm8p 3/3 Running 0 6m58s
kube-prometheus-stack-1684965548-kube-state-metrics-7d856dptlj5 1/1 Running 0 6m58s
kube-prometheus-stack-1684965548-prometheus-node-exporter-2fbl5 1/1 Running 0 6m58s
kube-prometheus-stack-1684965548-prometheus-node-exporter-m7zmv 1/1 Running 0 6m58s
prometheus-kube-prometheus-stack-1684-prometheus-0 2/2 Running 0 6m55s
A Prometheus és a Grafana hüvelyek a Running
állapot.
Ezután ellenőrizzük, hogy a DCGM mérőszámok bejutnak-e a Prometheusba.
- Továbbítsa a Prometheus felhasználói felületet
Különböző módokon lehet kitenni az EKS-ben futó Prometheus felhasználói felületet a fürtön kívülről származó kéréseknek. Használni fogjuk kubectl port-forwarding
. Eddig a parancsokat hajtjuk végre a aws-do-eks
tartály. A fürtben futó Prometheus szolgáltatás eléréséhez alagutat hozunk létre a gazdagépből. Itt a aws-do-eks
A tároló a következő parancs végrehajtásával fut a tárolón kívül, egy új terminálhéjban a gazdagépen. Ezt „host shell”-ként fogjuk hivatkozni.
kubectl -n prometheus port-forward svc/$(kubectl -n prometheus get svc | grep prometheus | grep -v alertmanager | grep -v operator | grep -v grafana | grep -v metrics | grep -v exporter | grep -v operated | cut -d ' ' -f 1) 8080:9090 &
Amíg a port-átirányítási folyamat fut, a Prometheus felhasználói felületét az alábbiakban leírtak szerint érhetjük el a gazdagépről.
- Nyissa meg a Prometheus felhasználói felületet
- Ha Cloud9-et használ, kérjük, navigáljon ide
Preview->Preview Running Application
a Prometheus felhasználói felület megnyitásához a Cloud9 IDE egyik lapján, majd kattintson a ikonra a lap jobb felső sarkában, hogy új ablakban jelenjen meg.
- Ha a helyi gazdagépen van, vagy távoli asztalon keresztül csatlakozik egy EC2-példányhoz, nyisson meg egy böngészőt, és keresse fel az URL-t
http://localhost:8080
.
- belép
DCGM
a Prometheusba áramló DCGM mérőszámok megtekintéséhez
- választ
DCGM_FI_DEV_GPU_UTIL
, választ Végrehajt, majd navigáljon a Grafikon lapon megtekintheti a várható GPU-használati mintát
- Állítsa le a Prometheus port-továbbítási folyamatát
Futtassa a következő parancssort a gazdagép shelljében:
kill -9 $(ps -aef | grep port-forward | grep -v grep | grep prometheus | awk '{print $2}')
Most már a Grafana Dashboardon keresztül megjeleníthetjük a DCGM-metrikákat.
- A Grafana felhasználói felületére való bejelentkezéshez kérje le a jelszót
kubectl -n prometheus get secret $(kubectl -n prometheus get secrets | grep grafana | cut -d ' ' -f 1) -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
- Továbbítsa a Grafana szolgáltatást
Futtassa a következő parancssort a gazdagép shelljében:
kubectl port-forward -n prometheus svc/$(kubectl -n prometheus get svc | grep grafana | cut -d ' ' -f 1) 8080:80 &
- Jelentkezzen be a Grafana felhasználói felületére
A Grafana UI bejelentkezési képernyőjét ugyanúgy érheti el, mint korábban a Prometheus felhasználói felületét. Ha Cloud9-et használ, válassza a lehetőséget Preview->Preview Running Application
, majd ugrik ki egy új ablakban. Ha helyi gazdagépet vagy távoli asztallal rendelkező EC2-példányt használ, látogassa meg az URL-t http://localhost:8080
. Jelentkezzen be az admin felhasználónévvel és a korábban lekért jelszóval.
- A navigációs panelen válassza a lehetőséget Dashboards
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Új és a import
A cikkben leírt alapértelmezett DCGM Grafana irányítópultot fogjuk importálni NVIDIA DCGM exportőr irányítópult.
- A területen
import via grafana.com
, belép 12239
És válasszon Terhelés
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Prométheusz adatforrásként
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a import
A következő képernyőképen láthatóhoz hasonló műszerfalat fog látni.
Annak bizonyítására, hogy ezek a mutatók pod-alapúak, módosítani fogjuk a GPU kihasználtság ablaktáblát ezen az irányítópulton.
- Válassza ki a panelt és a beállítások menüt (három pont)
- Bontsa ki a Opciók szakaszt, és szerkessze a Legenda mező
- Cserélje ki az ott lévő értéket erre
Pod {{pod}}
, majd válassza ki Megtakarítás
A legenda most azt mutatja be gpu-burn
a megjelenített GPU-használathoz társított podnév.
- Állítsa le a Grafana UI szolgáltatás porttovábbítását
Futtassa a következőket a gazdagép shelljében:
kill -9 $(ps -aef | grep port-forward | grep -v grep | grep prometheus | awk '{print $2}')
Ebben a bejegyzésben bemutattuk az EKS-fürtbe telepített nyílt forráskódú Prometheus és Grafana használatát. Kívánt esetben ez a telepítés helyettesíthető Amazon által felügyelt szolgáltatás a Prometheus számára és a Amazon által kezelt Grafana.
Tisztítsuk meg
A létrehozott erőforrások megtisztításához futtassa a következő szkriptet a aws-do-eks
konténer héj:
Következtetés
Ebben a bejegyzésben az NVIDIA DCGM Exporter segítségével gyűjtöttük a GPU-mutatókat, és vizualizálhattuk őket a CloudWatch vagy a Prometheus és a Grafana segítségével. Meghívjuk Önt, hogy használja az itt bemutatott architektúrákat, hogy lehetővé tegye a GPU-kihasználtság figyelését az NVIDIA DCGM segítségével saját AWS-környezetében.
További források
A szerzőkről
Amr Ragab az AWS-nél az EC2 Accelerated Computing korábbi vezető megoldások építésze. Elkötelezettje, hogy segítse ügyfeleit a számítási feladatok nagyarányú futtatásában. Szabadidejében szeret utazni, és új módszereket keres a technológia mindennapi életbe való integrálására.
Alex Iankoulski az AWS saját menedzselt gépi tanulási részlegének vezető megoldástervezője. Ő egy full-stack szoftver- és infrastruktúramérnök, aki szeret mélyreható, gyakorlatias munkát végezni. Munkájában arra összpontosít, hogy segítse az ügyfeleket az ML és AI munkaterhelések konténerezésében és összehangolásában a konténeralapú AWS szolgáltatásokon. Ő a nyílt forráskód szerzője is keretet készíteni és egy Docker kapitány, aki szereti a konténertechnológiák alkalmazását az innováció ütemének felgyorsítására, miközben megoldja a világ legnagyobb kihívásait. Az elmúlt 10 évben Alex a mesterséges intelligencia és az ML demokratizálásán, az éghajlatváltozás elleni küzdelemen, az utazás biztonságosabbá tételén, az egészségügy jobbá tételén és az energiaügyek okosabbá tételén dolgozott.
Keita Watanabe a Frameworks ML Solutions vezető megoldástervezője az Amazon Web Services-nél, ahol segít az iparág legjobb felhő alapú önmenedzselt gépi tanulási megoldásainak fejlesztésében. Előzménye a Machine Learning kutatás-fejlesztéssel foglalkozik. Mielőtt csatlakozott volna az AWS-hez, Keita az e-kereskedelemben dolgozott. Keita Ph.D. Tudományos szakon a Tokiói Egyetemen.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Autóipar / elektromos járművek, Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- PlatoHealth. Biotechnológiai és klinikai vizsgálatok intelligencia. Hozzáférés itt.
- ChartPrime. Emelje fel kereskedési játékát a ChartPrime segítségével. Hozzáférés itt.
- BlockOffsets. A környezetvédelmi ellentételezési tulajdon korszerűsítése. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/enable-pod-based-gpu-metrics-in-amazon-cloudwatch/