Skip to main content
Glama
performance_optimization.md3.58 kB
# Otimizações de Performance Este documento descreve as otimizações de performance implementadas no MCP Server para melhorar a velocidade e eficiência, especialmente no ambiente free tier do Render. ## 1. Sistema de Cache ### Cache em Múltiplos Níveis Implementamos um sistema de cache em múltiplos níveis para reduzir o número de operações custosas: 1. **Cache de Resultados de Busca** - Armazena resultados de buscas na web para evitar chamadas repetidas à API do DuckDuckGo - Chave de cache: `query_max_results_language` 2. **Cache de Scraping** - Armazena resultados de scraping com Puppeteer e BeautifulSoup - Chaves de cache: `puppeteer_url` e `basic_url_language` 3. **Cache de MCP** - Armazena MCPs completos gerados para tópicos específicos - Chave de cache: `topic_max_resources_num_nodes_language` ### Gerenciamento de Tamanho do Cache Para evitar problemas de memória, implementamos limites de tamanho para todos os caches: - Limite máximo de entradas no cache (configurável via `MAX_CACHE_SIZE`) - Remoção automática das entradas mais antigas quando o limite é atingido - Estratégia de remoção: primeiros 10% das entradas mais antigas ## 2. Otimizações de Puppeteer Puppeteer é uma ferramenta poderosa para scraping, mas consome muitos recursos. Implementamos as seguintes otimizações: 1. **Limitação de Instâncias Concorrentes** - Redução do número máximo de instâncias concorrentes de Puppeteer (configurável via `MAX_PUPPETEER_INSTANCES`) - Valor padrão reduzido para 2 instâncias para compatibilidade com o free tier do Render 2. **Timeouts Agressivos** - Redução do timeout para carregamento de páginas (de 30s para 8s) - Continuação com conteúdo parcial em caso de timeout 3. **Fechamento Rápido de Browsers** - Fechamento imediato do browser após obter os dados necessários - Verificação de cache antes de iniciar o browser para evitar instâncias desnecessárias ## 3. Otimizações de Rede 1. **Redução de Requisições** - Uso de cache para evitar requisições repetidas - Limitação do número de recursos processados 2. **Delays Adaptativos** - Redução do delay entre requisições (de 0.1s para 0.05s) - Balanceamento entre velocidade e evitar sobrecarga do servidor 3. **Headers Otimizados** - Adição de headers de idioma para melhorar a relevância dos resultados - Uso de regiões específicas para cada idioma nas buscas ## 4. Otimizações de Processamento 1. **Processamento Paralelo Limitado** - Uso de `asyncio.gather()` para processamento paralelo, mas com limites - Balanceamento entre paralelismo e uso de recursos 2. **Validação Antecipada** - Verificação de parâmetros antes de iniciar operações custosas - Retorno rápido de erros para requisições inválidas 3. **Geração Eficiente de Nós** - Ajuste dos parâmetros de geração de nós para equilibrar qualidade e performance - Validação de número mínimo de nós configurável ## Resultados Estas otimizações resultaram em: - Redução significativa no tempo de resposta para tópicos já consultados (via cache) - Menor consumo de memória, especialmente importante no free tier do Render - Maior estabilidade do servidor sob carga - Melhor experiência do usuário com respostas mais rápidas ## Configurações Recomendadas Para o ambiente free tier do Render, recomendamos: - `MAX_PUPPETEER_INSTANCES = 2` - `MAX_CACHE_SIZE = 100` - Timeout de Puppeteer: 8 segundos - Delay entre requisições: 0.05 segundos

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cabrit0/mcp_server_reuneMacacada'

If you have feedback or need assistance with the MCP directory API, please join our Discord server