Nesta página, mostramos como analisar o desempenho da CPU dos nós do cluster do Google Kubernetes Engine (GKE) usando eventos da unidade de monitoramento de desempenho (PMU).
Esta página é destinada a administradores de cluster que têm cargas de trabalho sensíveis ao desempenho e querem examinar a execução da CPU dessas cargas nos nós do GKE durante o desenvolvimento, a depuração, a comparativa e o monitoramento contínuo.
Antes de começar
Antes de começar, veja se você realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a CLI do Google Cloud para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a gcloud CLI anteriormente, instale a versão
mais recente executando
gcloud components update
.
Requisitos e limitações
Ao ativar eventos de PMU, esteja ciente dos seguintes requisitos e limitações:
- O cluster precisa estar no modo padrão.
- Se o cluster tiver o provisionamento automático de nós ativado, nenhum pool de nós criado por esse recurso poderá ativar eventos de PMU. Se você ativar o provisionamento automático de nós depois de ativar os eventos de PMU, os pools de nós atuais não serão afetados.
- Os pools de nós do cluster precisam executar o tipo de máquina C4 ou C4A.
Criar um cluster do GKE
Crie um cluster com eventos de PMU ativados para o pool de nós padrão:
gcloud container clusters create CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--performance-monitoring-unit=PMU_LEVEL \
--machine-type=MACHINE_TYPE
Substitua:
CLUSTER_NAME
: o nome do novo cluster.COMPUTE_LOCATION
: o local do Compute Engine para o novo cluster.PMU_LEVEL
: o tipo de eventos de PMU a serem coletados. Para mais informações, consulte Como a PMU funciona na documentação do Compute Engine. Os valores aceitos são:architectural
: ativa eventos de PMU arquitetural relacionados a eventos de cache (LLC) que não são do último nível.standard
: inclui eventos arquitetônicos e ativa eventos de PMU principais, incluindo eventos de cache L2.enhanced
: inclui eventos padrão e ativa eventos locais fora do núcleo da CPU e eventos de PMU de LLC. Essa opção só está disponível para VMs com um número específico de vCPUs. Para mais informações, consulte Limitações na documentação do Compute Engine.
MACHINE_TYPE
: o tipo de máquina do Compute Engine para os nós. Para uma lista de tipos de máquina compatíveis, consulte as limitações na documentação do Compute Engine.
Também é possível criar um pool de nós para um cluster usando o comando
gcloud container node-pools create
.
Conexão ao cluster
Configure kubectl
para se comunicar com o cluster:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=COMPUTE_LOCATION
Verificar se a PMU está ativada
Verifique se os nós do cluster têm a PMU ativada examinando as mensagens do kernel.
Confira uma lista de nós no cluster:
kubectl get nodes
O resultado será assim:
NAME STATUS ROLES AGE VERSION gke-c1-default-pool-44be3e13-prr1 Ready <none> 5d23h v1.27.13-gke.1070000 gke-c1-default-pool-7abc4a17-9dlg Ready <none> 2d21h v1.27.13-gke.1070000 gke-c1-default-pool-ed969ef6-4gzp Ready <none> 5d v1.27.13-gke.1070000
Anote o nome de um dos nós.
Confira o local do Compute Engine do nó:
gcloud compute instances list --filter=NODE_NAME
Substitua
NODE_NAME
pelo nome de um nó da etapa anterior.O resultado será assim:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS gke-c1-default-pool-44be3e13-prr1 us-central1-c c4-standard-4 true 10.128.0.67 34.170.44.164 RUNNING
Registre o nome da
ZONE
do Compute Engine. Neste exemplo, éus-central1-c
.Use o SSH para se conectar ao nó do cluster:
gcloud compute ssh NODE_NAME \ --zone=COMPUTE_ZONE
Substitua
COMPUTE_ZONE
pelo nome da zona do Compute Engine da etapa anterior.Examine as mensagens do kernel:
sudo dmesg |grep -A10 -i "Performance"
O resultado será assim:
[ 0.307634] Performance Events: generic architected perfmon, full- width counters, Intel PMU driver. # Several lines omitted
Essa saída indica que o driver da PMU foi inicializado.
A seguir
- Saiba como escolher uma plataforma mínima de CPU