Como reduzir o lag no seu servidor open.mp
"O servidor está lagado!" é a reclamação mais comum de qualquer comunidade. Mas "lag" pode ter causas bem diferentes, e cada uma tem uma solução.
Três tipos de lag
1. Lag de rede (ping alto)
- Sintoma: jogadores "teleportando", tiros que não acertam, só para alguns jogadores;
- Causa: distância até o servidor, internet do jogador, rota da operadora;
- Solução: servidor próximo dos jogadores (no Brasil, para o público brasileiro) e proteção DDoS.
2. Lag de servidor
- Sintoma: todos sentem ao mesmo tempo, comandos demoram, o mundo "congela";
- Causa: o gamemode está demorando demais para processar;
- Solução: otimizar código e, se necessário, mais CPU.
3. Lag de cliente (FPS baixo)
- Sintoma: jogo travando só em certas áreas, só para quem tem PC mais fraco;
- Causa: objetos demais, mods do jogador;
- Solução: otimizar mapas.
Causas comuns de lag de servidor
- Consultas síncronas ao banco (
mysql_query). Troque pormysql_tquery; - Código pesado em
OnPlayerUpdate; - Timers demais ou com intervalos muito curtos;
- Loops enormes (percorrer 1.000 slots, milhares de casas) com frequência;
- Leitura e escrita de arquivos em excesso;
- Plugins mal configurados ou desatualizados.
Como investigar
- Veja o uso de CPU no painel nos horários de lag;
- Compare com o número de jogadores e os eventos em andamento;
- Desative filterscripts um a um no servidor de testes;
- Meça o tempo de funções suspeitas (veja "Medindo o desempenho do servidor").
Correções rápidas
- Mover tudo do banco para
mysql_tquery; - Unificar timers por jogador em um timer global;
- Tirar lógica de
OnPlayerUpdate; - Carregar dados estáticos uma vez, na inicialização;
- Revisar a configuração do Streamer.
Quando é hora de mais recursos
Se o código está otimizado e a CPU continua alta nos picos, é hora de um plano com mais vCores. Veja "vCores e RAM: o que realmente importa".
Hospede seu servidor com a VittHost
Os planos OPENMP-BR da VittHost atacam o lag de rede com servidores no Brasil e proteção DDoS, e você acompanha CPU e memória pelo painel Pterodactyl. MySQL incluso, compatibilidade total com scripts SA-MP e teste grátis de 3 dias.