Desempenho do servidor
O desempenho do servidor afeta diretamente a velocidade e a capacidade de resposta da aplicação WCPOS. O POS faz muitas chamadas à API REST, portanto o tempo de resposta do servidor é o principal gargalo — a velocidade do POS depende muito da qualidade da hospedagem. Este guia ajuda a monitorar, diagnosticar e otimizar o desempenho do servidor usando as métricas integradas e técnicas de solução de problemas.
Requisitos mínimos do servidor
Para um POS responsivo em produção, recomendamos pelo menos:
A hospedagem compartilhada frequentemente tem poucos workers PHP e pouca memória para cargas de trabalho de POS, que fazem muitas chamadas de API simultâneas. Para uso de POS em produção, uma VPS ou hospedagem gerenciada de WordPress é altamente recomendada. A hospedagem gerenciada do WordPress.com também é conhecida por ter problemas de compatibilidade com a API REST (alguns usuários veem apenas 9–10 produtos de catálogos grandes) — recomenda-se WordPress.org auto-hospedado para compatibilidade total.
Pilha de otimização validada pela comunidade
Usuários relatam o melhor desempenho de POS com esta combinação:
- MariaDB 11.4 (mais rápido que MySQL para cargas de trabalho do WooCommerce)
- HPOS ativado (veja abaixo)
- Cache de objetos LiteSpeed ou Redis
- Armazenamento NVMe
- PHP OPcache ativado
Erros 503
Um 503 Service Unavailable não é um bug do POS — significa que o servidor não conseguiu processar a requisição. Verifique:
- Carga do servidor e recursos disponíveis
- Workers do PHP (podem estar esgotados)
- Limite de memória do PHP — aumente para 256 MB ou mais
- Logs do servidor do seu provedor de hospedagem (entre em contato com o provedor; ele consegue ver o que a aplicação não consegue)
Compatibilidade com versões do WooCommerce
Uma atualização do WooCommerce pode ocasionalmente interromper o POS. Sempre atualize o WooCommerce primeiro em um site de testes e mantenha o WCPOS atualizado para que ele inclua as correções de compatibilidade mais recentes.
Problemas conhecidos:
- WooCommerce 10.5.0 — interrompeu o carregamento de produtos no POS (sintoma: apenas ~10 produtos são exibidos; a leitura de código de barras e a pesquisa param de funcionar) e introduziu um cache experimental de produtos que pode causar inchaço de postmeta e esgotamento de memória. Correção: atualize o WCPOS para a versão mais recente (ela inclui a correção e uma migração de limpeza) ou reverta o WooCommerce para 10.4.3.
Se uma atualização do WooCommerce interromper o POS, reverta o WooCommerce para a versão anterior (pela guia Avançado na página do plugin no WordPress.org) e relate o problema.
Como entender as métricas do servidor
O WCPOS coleta automaticamente métricas de desempenho do servidor em cada operação de busca de dados (produtos, pedidos, clientes etc.). Essas métricas podem ser visualizadas na tela Registros.
Métricas típicas do servidor
{
"total": "24692",
"execution_time": "76.64 ms",
"server_load": "[15.20605469,16.16357422,16.76806641]"
}
Detalhamento:
total- Número de registros processados (24,692 IDs de produto)execution_time- Tempo necessário para concluir a operação (76.64 milissegundos)server_load- Médias de carga do servidor por 1, 5 e 15 minutos
Carga do servidor explicada
A carga do servidor representa a carga média do sistema em diferentes períodos:
- Primeiro valor - média de 1 minuto (15.21)
- Segundo valor - média de 5 minutos (16.16)
- Terceiro valor - média de 15 minutos (16.77)
Interpretação da carga
Os valores de carga do servidor podem ser enganosos e devem ser interpretados com cuidado:
As médias de carga do servidor nem sempre têm correlação direta com o desempenho. Um servidor com valores de carga altos (15+) ainda pode responder muito bem se tiver recursos suficientes e estiver bem otimizado. Concentre-se nos tempos de execução, não apenas nos valores de carga.
Diretrizes gerais:
- Carga em relação aos núcleos da CPU - uma carga de 8.0 em um servidor de 8 núcleos significa utilização total
- Sustentada vs. temporária - Picos breves são normais; carga alta sustentada pode indicar problemas
- O desempenho importa mais - Um servidor responsivo com carga alta é melhor do que um servidor lento com carga baixa
O que observar:
- Tempos de execução aumentando ao longo do tempo
- Carga crescendo de forma consistente sem explicação
- Carga alta E tempos de execução lentos juntos
Parâmetros de desempenho
Diretrizes de tempo de execução
| Operação | Bom | Aceitável | Ruim | Crítico |
|---|---|---|---|---|
| Busca de produtos | < 100ms | 100-500ms | 500ms-2s | > 2s |
| Criação de pedidos | < 200ms | 200-800ms | 800ms-3s | > 3s |
Considerações sobre contagem de registros
O tempo de execução deve escalar de forma razoável com a quantidade de registros:
// Good scaling examples
{"total": "100", "execution_time": "15.2 ms"} // 0.15ms per record
{"total": "1000", "execution_time": "89.4 ms"} // 0.09ms per record
{"total": "10000", "execution_time": "234.1 ms"} // 0.02ms per record
// Poor scaling examples
{"total": "100", "execution_time": "500.0 ms"} // 5.0ms per record
{"total": "1000", "execution_time": "8000.0 ms"} // 8.0ms per record
Diagnóstico de problemas de desempenho
Etapa 1: Monitorar os registros
- Abra Registros na gaveta de navegação
- Execute a operação lenta (sincronizar produtos, criar pedido etc.)
- Procure a entrada de registro correspondente
- Expanda o contexto para ver as métricas
Etapa 2: Analisar as métricas
Tempo de execução alto + carga alta no servidor = problema de recursos do servidor
{
"total": "5000",
"execution_time": "3500.0 ms",
"server_load": "[12.45, 11.23, 10.87]"
}
Solução: aumente os recursos do servidor ou otimize a configuração do servidor
Tempo de execução alto + carga normal no servidor = problema de plugin/banco de dados
{
"total": "1000",
"execution_time": "2800.0 ms",
"server_load": "[1.23, 1.45, 1.67]"
}
Solução: identifique plugins lentos ou otimize consultas ao banco de dados
Tempo de execução normal + Alta carga do servidor = Sobrecarga geral do servidor
{
"total": "2000",
"execution_time": "150.0 ms",
"server_load": "[8.90, 9.12, 8.45]"
}
Solução: reduza a carga do servidor causada por outros processos ou aumente os recursos
Problemas comuns de desempenho
1. Recursos insuficientes do servidor
Sintomas:
- Carga do servidor consistentemente alta (> 4.0 na maioria dos servidores)
- Tempos de execução longos em todas as operações
- Tempos limite frequentes
Soluções:
- Atualize a CPU - Mais núcleos lidam melhor com solicitações simultâneas
- Aumente a RAM - Reduz a E/S de disco e melhora o cache
- Use armazenamento SSD - Melhora drasticamente o desempenho do banco de dados
- Otimize as configurações do PHP - Aumente memory_limit, max_execution_time
2. Consultas lentas ao banco de dados
Sintomas:
- Tempos de execução elevados com carga normal do servidor
- Busca de produtos/pedidos especialmente lenta
- Códigos de erro relacionados ao banco de dados nos logs
Soluções:
- Ative o HPOS do WooCommerce - A maior melhoria individual de desempenho do banco de dados
- Use cache de objetos - Redis ou Memcached, se disponível no seu provedor de hospedagem
- Mantenha o WordPress atualizado - As atualizações do core frequentemente incluem otimizações de banco de dados
- Limite as revisões de posts - Adicione
define('WP_POST_REVISIONS', 3);ao wp-config.php
3. Interferência de plugins
Sintomas:
- Degradação súbita de desempenho após atualizações de plugins
- Operações específicas muito mais lentas do que outras
- Tempos de execução elevados com carga normal do servidor
Solução de problemas:
- Teste em ambiente de homologação - Desative todos os plugins, exceto WooCommerce e WCPOS
- Meça a linha de base - Registre os tempos de execução com o mínimo de plugins
- Ative gradualmente - Adicione plugins um por um para identificar os responsáveis
- Verifique os ganchos dos plugins - Procure plugins conectados às ações do WooCommerce
Plugins problemáticos comuns:
- Plugins de SEO pesados durante operações de produtos
- Sistemas complexos de gerenciamento de estoque
- Plugins de análise/rastreamento em tempo real
- Plugins personalizados mal codificados
4. Configuração do WordPress/WooCommerce
Sintomas:
- Desempenho inconsistente
- Erros relacionados à memória nos logs
- Painel administrativo lento
Checklist de otimização:
- Versão do PHP - Use PHP 8.0+ para obter melhor desempenho
- WooCommerce HPOS - Ative o Armazenamento de pedidos de alto desempenho (veja abaixo)
- Cache do WordPress - Ative o cache de objetos, se disponível
- Configurações do WooCommerce - Otimize os tamanhos das imagens dos produtos
Armazenamento de pedidos de alto desempenho do WooCommerce (HPOS)
HPOS é uma das melhorias de desempenho mais significativas que podem ser feitas no WooCommerce. Ele armazena pedidos em tabelas personalizadas do banco de dados em vez da tabela de posts do WordPress, melhorando drasticamente o desempenho para lojas com muitos pedidos.
Benefícios:
- Consultas de pedidos mais rápidas - Pedidos armazenados em uma estrutura otimizada de banco de dados
- Menor carga no banco de dados - Separa pedidos de posts/páginas
- Melhor escalabilidade - Lida com grandes volumes de pedidos com eficiência
- Melhor desempenho administrativo - Telas de gerenciamento de pedidos mais rápidas
Como ativar:
- Acesse
WooCommerce > Configurações > Advanced > Features - Ative "Armazenamento de pedidos de alto desempenho"
- Siga o processo de migração
Saiba mais:
Práticas recomendadas de monitoramento do servidor
1. Verificações regulares de desempenho
- Análises semanais - Verifique os registros em busca de tendências de desempenho
- Medições de referência - Registre os tempos normais de execução
- Monitoramento em horários de pico - Monitore durante períodos de alto tráfego
2. Configure alertas de desempenho
Monitore estes sinais de alerta:
- Tempos de execução > 1000ms de forma consistente
- Carga do servidor > 5.0 por períodos prolongados
- Erros frequentes de tempo limite nos logs
3. Planejamento de capacidade
Acompanhe as tendências de crescimento:
- Crescimento da contagem de registros - Produtos, pedidos, clientes
- Degradação do desempenho - Como o tempo de execução aumenta
- Utilização de recursos - CPU, memória, uso de disco
Estratégias de otimização do servidor
1. Práticas recomendadas do WordPress/WooCommerce
Ative o HPOS:
- A melhoria de desempenho mais impactante para WooCommerce
- Consulte a seção sobre HPOS acima para obter detalhes
Configuração do PHP (consulte seu provedor de hospedagem):
memory_limit = 512M
max_execution_time = 300
max_input_vars = 3000
Configuração do WordPress:
// In wp-config.php - limit post revisions
define('WP_POST_REVISIONS', 3);
// Enable WordPress debug logging if needed
define('WP_DEBUG_LOG', true);
2. Otimizações no nível da hospedagem
Cache de objetos:
- Consulte seu provedor de hospedagem sobre a disponibilidade de Redis ou Memcached
- Muitos provedores de hospedagem gerenciada para WordPress fornecem isso automaticamente
Versão do PHP:
- Use PHP 8.0+ para obter melhorias significativas de desempenho
- A maioria dos provedores permite trocar a versão do PHP facilmente
Recursos do servidor:
- Garanta RAM adequada (mínimo de 1GB, preferencialmente 2GB+)
- O armazenamento SSD oferece desempenho de banco de dados muito melhor do que unidades tradicionais
Observações específicas por hospedagem
Alguns provedores de hospedagem e CDNs precisam de configuração para permitir que o POS acesse a API REST do WooCommerce:
| Hospedagem / serviço | Problema | Correção |
|---|---|---|
| GoDaddy (hospedagem) | O firewall do site bloqueia chamadas da API REST para /wp-json/ (erros como "Received 'undefined'") | Website Security > Firewall > Configurações > Access Control > Allow URL Paths → adicione /wp-json/ |
| WP Engine (hospedagem) | A API REST deve ser ativada explicitamente | Ative a API REST; adicione os endpoints da API à lista de permissões no firewall, se necessário |
| Cloudflare (CDN) | Pode bloquear solicitações da API REST e armazenar respostas da API em cache | Verifique as regras de firewall; adicione uma regra de página para ignorar o cache em /wp-json/* |
| WordPress.com (hospedagem) | Problemas de compatibilidade da API REST / carregamento de produtos (apenas 9 a 10 produtos aparecem) | Use WordPress.org auto-hospedado para compatibilidade total |
| Hospedagem compartilhada | Poucos workers PHP / pouca memória para chamadas simultâneas do POS | Migre para um VPS ou uma hospedagem WordPress gerenciada |
Plugins de segurança (Wordfence etc.) podem bloquear a API REST de formas semelhantes — consulte Conflitos de plugins para ver a lista completa e as correções.
HTTP 414 — URI muito longo
Carrinhos grandes, ou o token de acesso incluído no URL de checkout, podem exceder o limite de comprimento de URL do servidor (a solicitação de checkout usa GET). Isso pode variar conforme o navegador e ser agravado pelo cache do navegador.
Solução alternativa: limpe primeiro o cache do navegador e, em seguida, aumente o limite de comprimento de URL do servidor:
- Apache:
LimitRequestLine 65536emhttpd.conf - Nginx:
large_client_header_buffers 4 65536;emnginx.conf - Se não houver acesso à configuração, solicite ao provedor de hospedagem que faça o ajuste.
Quando buscar ajuda
Entre em contato com o provedor de hospedagem ou com um desenvolvedor WordPress se:
- Carga do servidor consistentemente > 8.0 apesar dos esforços de otimização
- Tempos de execução > 5000ms para operações simples
- Erros de memória aparecendo com frequência nos logs
- Consultas ao banco de dados levando > 2 segundos de forma consistente
Forneça a eles:
- Métricas do servidor dos seus logs
- Lista de plugins ativos
- Especificações do servidor (CPU, RAM, tipo de armazenamento)
- Versões do WordPress e WooCommerce