Esta página mostra como analisar o desempenho da CPU dos nós do cluster do Google Kubernetes Engine (GKE) através de eventos da Unidade de monitorização do desempenho (PMU).
Esta página destina-se a administradores de clusters que têm cargas de trabalho sensíveis ao desempenho e querem examinar a execução da CPU das respetivas cargas de trabalho nos respetivos nós do GKE durante o desenvolvimento, a depuração, os testes de referência e a monitorização contínua.
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute
gcloud components update
para obter a versão mais recente.
Requisitos e limitações
Quando ativa os eventos de PMU, tenha em atenção os seguintes requisitos e limitações:
- O cluster tem de estar no modo padrão.
- Se o cluster tiver a administração automática de nós ativada, não é possível ativar eventos de PMU em nenhum conjunto de nós criado através da administração automática. Se ativar a administração de contas automática de nós depois de ativar os eventos de PMU, os conjuntos de nós existentes não são afetados.
- Os conjuntos de nós do cluster têm de executar uma série de máquinas que suporte a PMU. Para mais informações sobre os tipos de máquinas suportados, consulte a tabela de limitações da PMU.
Crie um cluster do GKE
Crie um cluster com eventos PMU ativados para o node pool predefinido:
gcloud container clusters create CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--performance-monitoring-unit=PMU_LEVEL \
--machine-type=MACHINE_TYPE
Substitua o seguinte:
CLUSTER_NAME
: o nome do novo cluster.COMPUTE_LOCATION
: a localização do Compute Engine para o novo cluster.PMU_LEVEL
: o tipo de eventos de PMU a recolher. Para mais informações, consulte o artigo Como funciona a PMU na documentação do Compute Engine. Os valores suportados são os seguintes:architectural
: ativa eventos de PMU arquitetónicos relacionados com eventos de cache de nível não final (LLC).standard
: inclui eventos arquitetónicos e ativa eventos PMU principais, incluindo eventos de cache L2.enhanced
: inclui eventos padrão e ativa quaisquer eventos locais fora do núcleo da CPU e dos eventos da PMU da LLC. Esta opção só está disponível com VMs que tenham um número específico de vCPUs. Para mais informações, consulte as Limitações na documentação do Compute Engine.
MACHINE_TYPE
: o tipo de máquina do Compute Engine para os seus nós. Para ver uma lista dos tipos de máquinas suportados, consulte as limitações na documentação do Compute Engine.
Também pode criar um novo conjunto de nós para um cluster existente através do comando
gcloud container node-pools create
.
Estabeleça ligação ao cluster
Configure o kubectl
para comunicar com o cluster:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=COMPUTE_LOCATION
Verifique se a PMU está ativada
Verifique se os nós do cluster têm a PMU ativada examinando as mensagens do kernel.
Obtenha uma lista de nós no cluster:
kubectl get nodes
O resultado é semelhante ao seguinte:
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
Registe o nome de um dos nós.
Obtenha a localização do Compute Engine do nó:
gcloud compute instances list --filter=NODE_NAME
Substitua
NODE_NAME
pelo nome de um nó do passo anterior.O resultado é semelhante ao seguinte:
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
Registe o nome do Compute Engine
ZONE
. Neste exemplo, éus-central1-c
.Use o SSH para estabelecer ligação ao nó do cluster:
gcloud compute ssh NODE_NAME \ --zone=COMPUTE_ZONE
Substitua
COMPUTE_ZONE
pelo nome da zona do Compute Engine do passo anterior.Examine as mensagens do kernel:
sudo dmesg |grep -A10 -i "Performance"
O resultado é semelhante ao seguinte:
[ 0.307634] Performance Events: generic architected perfmon, full- width counters, Intel PMU driver. # Several lines omitted
Esta saída indica que o controlador PMU está inicializado.
O que se segue?
- Saiba como escolher uma plataforma de CPU mínima