Skip to content

Configurações Incorretas

Resumo das Configurações Problemáticas

flowchart TD subgraph CRITICO["CRITICO"] A["Always On = FALSE"] end subgraph AVALIAR["A AVALIAR"] B["32-bit Worker = TRUE"] end subgraph IMPORTANTE["IMPORTANTE"] C["Auto Heal = FALSE"] D["Health Check = Nenhum"] E["App Insights = Desativado"] end subgraph MENOR["MENOR"] F["HTTP/2 = FALSE"] end A --> G["Site adormece e demora minutos a reiniciar"] B --> H["Memoria limitada a 2 GB, causa crashes"] C --> I["Sem recuperacao automatica"] D --> J["Azure nao sabe se o site esta saudavel"] E --> K["Zero visibilidade sobre problemas"] F --> L["Performance de rede subotima"] style CRITICO fill:#ff4444,color:#fff style AVALIAR fill:#ffcc00,color:#000 style IMPORTANTE fill:#ff8800,color:#fff style MENOR fill:#ffcc00,color:#000

1. Always On = FALSE (CRITICO)

O que é

Quando o App Service não recebe pedidos durante aproximadamente 20 minutos, o Azure descarrega a aplicação da memória. O próximo pedido desencadeia um cold start completo.

Impacto

O Umbraco 7, durante um cold start, reconstrói a cache XML completa a partir da base de dados. Com 4.468 nós de conteúdo e tabelas sobrecarregadas (870K linhas em cmsPropertyData, 1.6M em icUrlTracker), este processo demora vários minutos. Durante este tempo, o site parece estar completamente em baixo.

Correção

  1. Aceder ao Azure Portal
  2. Navegar para App Service > Configuration > General Settings
  3. Ativar Always On = On
  4. Guardar e aguardar o reinício

Custo

Nenhum custo adicional. O Always On está incluído no plano Standard S2 (e em todos os planos pagos).


2. 32-bit Worker Process (A AVALIAR)

O que é

A aplicação está a correr em modo 32-bit, o que limita a memória disponível a aproximadamente 2 GB.

Recomendação

Manter 32-bit — Avaliar Apenas se Necessário

O modo 32-bit é mais eficiente em termos de memória e não deve ser alterado sem motivo concreto. A mudança para 64-bit aumenta significativamente o consumo base de memória.

Abordagem recomendada:

  1. Manter 32-bit por agora
  2. Executar a limpeza da base de dados (Fase 2)
  3. Monitorizar a utilização de memória via Application Insights
  4. Só alterar para 64-bit se a monitorização indicar que a memória está consistentemente próxima do limite

Custo

Nenhum.


3. Auto Heal = FALSE

O que é

O Auto Heal é uma funcionalidade do Azure App Service que permite reiniciar automaticamente a aplicação quando determinadas condições são detetadas (erros, uso excessivo de memória, pedidos lentos).

Impacto

Sem Auto Heal, quando a aplicação entra num estado degradado, permanece nesse estado até que alguém reinicie manualmente o App Service.

Correção

Ativar Auto Heal com as seguintes regras recomendadas:

Condição Ação Valor
Memória > 80% durante 5 minutos Reiniciar memoryThreshold: 80%
Fila de pedidos > 100 Reiniciar requestQueue: 100
Pedidos lentos (> 30s) Registar + Reiniciar slowRequests: 30s
Status HTTP 500 > 10 em 2 min Reiniciar statusCodes: 500

Custo

Nenhum.


4. Health Check = Nenhum

O que é

O Azure App Service pode ser configurado para verificar periodicamente se a aplicação está saudável, enviando pedidos HTTP para um endpoint específico. Atualmente não está configurado nenhum endpoint de Health Check.

Impacto

O Azure não tem forma de saber se a aplicação está a responder corretamente. Instâncias não saudáveis continuam a receber tráfego, resultando em erros para os utilizadores.

Correção

  1. Aceder ao Azure Portal
  2. Navegar para App Service > Health check
  3. Definir o caminho: /umbraco/ping (ou criar um endpoint personalizado)
  4. Ativar

Custo

Nenhum.


5. Application Insights - Ingestão Desativada

O que é

O recurso Application Insights existe no Azure, mas a ingestão de dados está desativada. Isto significa que o recurso foi criado mas nunca configurado para recolher dados, ou foi desativado em algum momento. O resultado é zero telemetria: não há registo de pedidos, erros, tempos de resposta ou métricas de performance.

Impacto

  • Impossível diagnosticar problemas de forma proativa
  • Sem alertas quando o site está lento ou em baixo
  • Sem histórico de pedidos ou erros para análise
  • Sem métricas de utilização para tomar decisões informadas

Correção

  1. Aceder ao Azure Portal
  2. Navegar para Application Insights > Properties
  3. Ativar ingestão de dados (Enable)
  4. Verificar que a connection string está configurada no App Service (Application Settings)
  5. Configurar alertas básicos:
    • Tempo de resposta > 10 segundos
    • Taxa de erros > 5%
    • Disponibilidade < 99%

Custo

O Application Insights tem um tier gratuito de 5 GB/mês de ingestão de dados. Para um site deste tamanho, é provável que fique dentro do limite gratuito ou tenha um custo mínimo (~5-10 EUR/mês).


6. HTTP/2 = FALSE

O que é

O HTTP/2 é o protocolo moderno de comunicação web que oferece multiplexing, compressão de headers e server push. O App Service está a usar HTTP/1.1.

Impacto

Impacto menor, mas o HTTP/2 melhora a performance geral do carregamento de páginas, especialmente em ligações com latência elevada.

Correção

  1. Aceder ao Azure Portal
  2. Navegar para App Service > Configuration > General Settings
  3. Ativar HTTP version = 2.0
  4. Guardar

Custo

Nenhum.


Resumo das Correções

Configuração Estado Atual Estado Recomendado Prioridade Custo Tempo
Always On OFF ON CRÍTICO 0 EUR 1 minuto
32-bit Worker ON Avaliar após limpeza BD A avaliar 0 EUR Após Fase 2
Auto Heal OFF ON Importante 0 EUR 10 minutos
Health Check Nenhum Configurado Importante 0 EUR 5 minutos
App Insights Ingestion Desativado Ativado Importante 0-10 EUR/mês 10 minutos
HTTP/2 OFF ON Menor 0 EUR 1 minuto

Todas estas correções podem ser aplicadas em menos de 1 hora, sem risco para a aplicação.