Um pool de recursos elástico é uma estratégia de agendamento híbrido de recursos no nível do service fornecida pelo EAS. Ele permite que os service implantados em um grupo de recursos dedicado encaminhem automaticamente novas réplicas excedentes para um grupo de recursos público com pagamento conforme o uso durante picos de tráfego, quando os recursos dedicados são insuficientes. Isso garante que o seu service mantenha a capacidade de dimensionamento elástico.
Benefícios
Supere os limites de capacidade do grupo de recursos: Quando os recursos no grupo de recursos dedicado se esgotam, a expansão do service pode usar automaticamente instâncias sob demanda do pool de recursos público. Isso garante que o horizontal auto-scaling (com base em métricas como QPS ou CPU) não fique limitado pelo número de nós físicos no grupo de recursos dedicado.
Otimize os custos: Use recursos de assinatura de baixo custo para lidar com o tráfego de base e consuma recursos sob demanda apenas durante os períodos de pico. Isso evita manter recursos dedicados redundantes a longo prazo apenas para cobrir cargas de pico, reduzindo os custos gerais de recursos.
Como funciona
O pool de recursos elástico segue uma ordem de prioridade clara no agendamento para equilibrar custo e estabilidade.
-
Expansão
Quando um service aciona a expansão, o agendador do EAS primeiro tenta criar novas instâncias dentro do grupo de recursos dedicado do service.
Se o grupo de recursos dedicado não tiver recursos suficientes — como ausência de nós disponíveis ou quantidade insuficiente de CPU, memória ou gpu —, o agendador cria novas instâncias no grupo de recursos público usando a especificação de recursos (tipo de instância) definida na configuração do pool de recursos elástico.
-
Redução
Quando um service aciona a redução, o sistema seleciona e encerra prioritariamente as instâncias em execução no grupo de recursos público.
O sistema só começa a reduzir as instâncias do grupo de recursos dedicado após reduzir todas as instâncias elásticas no grupo de recursos público. Isso garante que os recursos elásticos mais caros sejam liberados primeiro, mantendo as instâncias de base mais estáveis.
Pré-requisitos
Antes de começar, crie um grupo de recursos dedicado. Para mais informações, consulte Use EAS resource groups.
Métodos de configuração
Ativar o pool de recursos elástico durante a implantação do service
Configuração no console
Acesse o PAI console. Selecione uma região na parte superior da página. Em seguida, selecione o workspace desejado e clique em Enter Elastic Algorithm Service (EAS).
Clique em Deploy Service. Na seção Inference Service, clique em Custom Deployment na seção Custom Model Deployment.
-
Na página Custom Deployment, acesse a seção Resource Information e configure os seguintes parâmetros principais. Para outros parâmetros, consulte Custom deployment.
Parâmetro
Descrição
Resource Type
Selecione EAS Resource Group.
Resource Group
Selecione um grupo de recursos dedicado existente.
Elastic Resource Pool
Ative a opção Elastic Resource Pool e selecione uma Resource Specification.
Após configurar o pool de recursos elástico, se os recursos da máquina se tornarem insuficientes durante a expansão, o sistema iniciará automaticamente as novas instâncias criadas nos recursos públicos configurados com pagamento conforme o uso e as faturará no grupo de recursos público. Durante a redução, o sistema reduz primeiro as instâncias no grupo de recursos público.
Clique em Elastic Resource Pool.
Configuração via JSON
Os parâmetros principais para ativar o pool de recursos elástico estão listados a seguir. Para outros parâmetros, consulte JSON deployment.
resource_burstable: defina como true para ativar o pool de recursos elástico.
-
cloud.networking: Para garantir a disponibilidade da rede durante o dimensionamento elástico, configure a VPC do service usando este campo ao ativar o pool de recursos elástico.
ImportanteAo usar um grupo de recursos dedicado, é possível configurar uma VPC no nível do grupo de recursos, mas só é possível configurar o grupo de recursos dedicado no nível do service (por meio do campo cloud.networking).
cloud.computing: Especifica os tipos de instância disponíveis para expansão para os recursos públicos. Para mais informações, consulte Use public resources.
O exemplo a seguir mostra um arquivo de configuração JSON.
{
"model_path": "http://examplebucket.oss-cn-shanghai.aliyuncs.com/models/lr.pmml",
"name": "test_burstable_service",
"processor": "pmml",
"metadata": {
"instance": 1,
"cpu": 1,
"resource": "eas-r-xxx",
"resource_burstable": true
},
"cloud": {
"computing": {
"instance_type": "ecs.r7.2xlarge"
},
"networking": {
"security_group_id": "sg-uf68iou5an8j7sxd****",
"vswitch_id": "vsw-uf6nji7pzztuoe9i7****"
}
}
}
Ativar ou desativar o pool de recursos elástico após a implantação do service
No console
Acesse o PAI console. Selecione uma região na parte superior da página. Em seguida, selecione o workspace desejado e clique em Resource Specification.
Clique em Deploy na coluna Enter Elastic Algorithm Service (EAS) e atualize o service implantado.
-
Na página Update, acesse a seção Actions para ativar ou desativar o dimensionamento elástico.
-
Ativar o dimensionamento elástico
Na seção Update Service, ative a opção Resource Information e configure a especificação do grupo de recursos público.
-
Desativar o dimensionamento elástico
Na seção Resource Information, desative a opção Elastic Resource Pool.
-
Clique em Resource Information.
Cliente local
Para começar, execute os seguintes comandos para ativar ou desativar rapidamente o Auto Scaling de um service já implantado. Se precisar, modifique os parâmetros conforme necessário. O exemplo usa a versão de 64 bits do Windows:
Se você não configurou o parâmetro cloud.networking ao implantar o service em um grupo de recursos dedicado, as instâncias expandidas para o grupo de recursos público não oferecerão suporte à conectividade de rede direta após a ativação do Auto Scaling.
# Enable auto scaling for service resources.
eascmdwin64.exe modify <service_name> -Dmetadata.resource_burstable=true
# Disable auto scaling for service resources.
eascmdwin64.exe modify <service_name> -Dmetadata.resource_burstable=false
Agora, insira o nome do service implantado no lugar de <service_name>.
Ativar ou desativar o Auto Scaling afeta apenas as instâncias do service recém-criadas. As instâncias existentes não migram automaticamente. Por exemplo, se duas instâncias estiverem no estado pendente ao concluir a expansão, ativar o Auto Scaling posteriormente não moverá essas instâncias pendentes para o grupo de recursos público. Reinicie-as no console para reagendá-las para os recursos públicos. Da mesma forma, se desativar o Auto Scaling de um service que já possui instâncias em execução em recursos públicos, essas instâncias não retornarão automaticamente ao grupo de recursos dedicado.
Referências
Para habilitar, ative o Auto Scaling horizontal para permitir que o sistema dimensione automaticamente com base nas métricas configuradas. Para mais informações, consulte Horizontal auto-scaling.
Para dimensionar automaticamente o número de réplicas para um valor específico em um cronograma, consulte Scheduled auto-scaling.