Você já se perguntou como o seu servidor de Tibia está funcionando? Como você pode identificar e resolver os problemas que afetam a experiência dos seus jogadores? Como você pode otimizar o seu código e o seu banco de dados para melhorar o desempenho do seu OTS?
Se você é um administrador ou um desenvolvedor de um servidor de Tibia alternativo (OTS), você provavelmente sabe que não é fácil monitorar e analisar o funcionamento do seu projeto. Você precisa de ferramentas e métodos adequados para coletar e interpretar os dados que refletem a realidade do seu OTS.
Uma dessas ferramentas é o sistema de estatísticas OTS (OTS stats) criado pelo desenvolvedor kondra ([email protected]). Esse sistema é capaz de rastrear todas as tarefas do thread dispatcher, as chamadas de funções Lua e as consultas SQL que ocorrem no seu servidor. Ele gera arquivos .log na pasta data/logs/stats que mostram informações como:
- O tempo (em milissegundos) que cada tarefa, função ou consulta levou para ser executada
- O número de vezes que cada tarefa, função ou consulta foi chamada
- O uso relativo e real da CPU por cada tarefa, função ou consulta
- O número de jogadores online no momento da coleta dos dados
- A identificação das tarefas, funções ou consultas mais lentas ou muito lentas (slow ou very slow), que podem causar lag ou travamentos no servidor
Com esses dados, você pode ter uma visão mais clara e precisa do que está acontecendo no seu OTS. Você pode detectar gargalos, erros, vazamentos de memória, loops infinitos e outras anomalias que prejudicam o desempenho do seu servidor. Você também pode comparar diferentes versões do seu código ou do seu banco de dados para verificar se houve alguma melhoria ou piora na performance.
Como usar OTS statistics?
Para usar OTS statistics, você precisa aplicar um patch no seu TFS 1.4 ou superior. Você pode encontrar o patch no GitHub do Gesior.pl, que recebeu permissão do autor original ([email protected]) para publicá-lo. Você também precisa configurar alguns parâmetros no config.lua , como o intervalo de reporte e os limites de tempo para considerar uma função ou consulta lenta ou muito lenta.
Depois de aplicar o patch e configurar os parâmetros, você pode iniciar o seu servidor e verificar os arquivos de log gerados em data/logs/stats . Você vai ver algo assim:
[29/01/2023 16:08:37] Thread: 1 Cpu usage: 0.628848% Idle: 99.6671% Other: -0.295933% Players online: 0
Time (ms) Calls Rel usage % Real usage % Description
167 120 88.80196% 0.55843% std::bind(&Game::checkDecay, this)
20 300 10.83945% 0.06816% std::bind(&Game::checkCreatures, this, (index + 1) % EVENT_CREATURECOUNT)
0 12 0.30616% 0.00193% std::bind(&Game::updateWorldTime, this)
Isso significa que a função checkDecay foi chamada 120 vezes e levou 167 milissegundos para executar no total, consumindo cerca de 88% do uso da CPU do thread dispatcher nesse intervalo de tempo.
Você também pode ver os arquivos dispatcher_slow.log , lua_slow.log e sql_slow.log , que mostram as funções ou consultas que levaram mais tempo do que o limite configurado no config.lua . Por exemplo:
[29/01/2023 16:06:07] Execution time: 35 ms - data/globalevents/scripts/startup.lua:onStartup
Isso significa que a função onStartup do script startup.lua levou 35 milissegundos para executar na primeira vez que foi chamada.
Por que usar OTS statistics?
Usando OTS statistics by kondra , você pode ter uma visão mais clara e precisa do desempenho do seu servidor. Você pode identificar quais são os gargalos e otimizar as funções ou consultas mais críticas. Você também pode monitorar a carga da CPU e a quantidade de jogadores online ao longo do tempo.
Conclusão
O OTS statistics é uma ferramenta indispensável para quem quer ter um servidor alternativo de Tibia bem-sucedido. Com ela, você pode monitorar e otimizar o seu servidor em tempo real, garantindo uma melhor experiência para os seus jogadores.
Se você quiser saber mais sobre outros assuntos relacionados a OT Servers, continue acompanhando o nosso blog.