{
  "schemaVersion": "1.0",
  "path": "/guias/minecraft/spark-profiler-analisar-lag-minecraft",
  "url": "https://streethosting.com.br/guias/minecraft/spark-profiler-analisar-lag-minecraft",
  "markdownUrl": "https://streethosting.com.br/guias/minecraft/spark-profiler-analisar-lag-minecraft.md",
  "jsonUrl": "https://streethosting.com.br/guias/minecraft/spark-profiler-analisar-lag-minecraft.json",
  "title": "Spark profiler: como analisar o lag do servidor de Minecraft",
  "description": "Como instalar o spark, tirar um profile no momento certo e ler a árvore de chamadas para descobrir qual plugin, entidade ou tarefa está estourando o MSPT do seu servidor.",
  "category": "minecraft",
  "topics": [
    "performance",
    "plugins"
  ],
  "difficulty": "intermediario",
  "datePublished": "2026-08-26",
  "dateModified": "2026-08-26",
  "readingMinutes": 2,
  "h1": "Spark profiler: encontrar a causa real do lag",
  "excerpt": "TPS 20 e servidor engasgando não são contraditórios. O spark mede quanto tempo cada tick realmente custa e mostra, linha por linha, para onde esse tempo está indo.",
  "author": "Equipe StreetHosting",
  "wordCount": 330,
  "categoryLabel": "Minecraft",
  "topicLabels": [
    "Performance e otimização",
    "Plugins de Minecraft"
  ],
  "primaryKeyword": "spark profiler minecraft",
  "secondaryKeywords": [
    "como ler profile spark",
    "analisar lag minecraft",
    "mspt alto o que fazer",
    "tps baixo servidor"
  ],
  "toc": [
    {
      "id": "tps-vs-mspt",
      "label": "TPS e MSPT: qual número olhar"
    },
    {
      "id": "instalar",
      "label": "Instalar o spark"
    },
    {
      "id": "comandos",
      "label": "Os comandos que importam"
    },
    {
      "id": "quando-perfilar",
      "label": "Quando e por quanto tempo perfilar"
    },
    {
      "id": "ler-arvore",
      "label": "Como ler a árvore de chamadas"
    },
    {
      "id": "padroes",
      "label": "Os padrões clássicos de lag"
    },
    {
      "id": "config-ou-maquina",
      "label": "Configuração ou limite de máquina"
    }
  ],
  "faqs": [
    {
      "question": "Qual a diferença entre TPS e MSPT?",
      "answer": "TPS conta quantos ticks o servidor executou por segundo, com teto de 20. MSPT mede quanto tempo cada tick levou. Como o orçamento de um tick é 50 ms, o TPS só cai depois que o MSPT passa de 50. Um servidor a 45 ms de MSPT marca TPS 20 e já está no limite."
    },
    {
      "question": "Meu TPS está 20 mas o servidor engasga. Por quê?",
      "answer": "Porque a média esconde os picos. O TPS é uma média de vários segundos, e um único tick de 400 ms some nessa média enquanto o jogador sente a travada. Olhe o MSPT máximo, não só o médio, e tire um profile durante o engasgo."
    },
    {
      "question": "Por quanto tempo devo deixar o profiler rodando?",
      "answer": "De três a cinco minutos, com o servidor sob carga real. Menos que isso captura ruído, e muito mais dilui o pico numa média longa. Se o lag acontece em momentos específicos, comece a gravar pouco antes do momento."
    },
    {
      "question": "O spark deixa o servidor mais lento?",
      "answer": "O custo é baixo e aceitável durante uma investigação, porque o spark amostra as threads em vez de instrumentar cada chamada. Ainda assim, encerre o profiler depois de coletar o que precisa em vez de deixar rodando o dia inteiro."
    },
    {
      "question": "O profile não aponta nenhum plugin. E agora?",
      "answer": "Quando o tempo está espalhado por igual entre partes do próprio jogo, sem ramo dominante, o problema não é configuração e sim capacidade. Isso aparece em servidores com muita gente, muitas entidades ou modpack pesado numa CPU sem clock suficiente."
    },
    {
      "question": "Spark substitui o timings?",
      "answer": "Sim. O timings foi descontinuado nas builds modernas de Paper e o spark é o sucessor recomendado. Ele mostra mais coisa, inclui as threads fora da principal e mede memória e garbage collector no mesmo relatório."
    }
  ],
  "howToSteps": [
    {
      "name": "Instale o spark",
      "text": "Baixe a build do spark para a sua plataforma e coloque o jar na pasta de plugins ou de mods. Reinicie o servidor."
    },
    {
      "name": "Confirme o sintoma com /spark tps",
      "text": "Rode /spark tps e /spark health para ver TPS, MSPT, memória e uso de CPU antes de qualquer conclusão."
    },
    {
      "name": "Perfile no momento de pico",
      "text": "Com jogadores online e o lag acontecendo, rode /spark profiler start e deixe gravar de três a cinco minutos."
    },
    {
      "name": "Encerre e abra o resultado",
      "text": "Rode /spark profiler stop. O comando devolve um link com a árvore de chamadas do período gravado."
    },
    {
      "name": "Siga o ramo mais pesado",
      "text": "Na árvore, desça sempre pelo maior percentual até encontrar um pacote que não seja do Minecraft. Ali está o consumidor real do tick."
    },
    {
      "name": "Corrija e meça de novo",
      "text": "Aplique uma correção por vez e tire um novo profile no mesmo horário para comparar com o anterior."
    }
  ],
  "relatedProducts": [
    "https://streethosting.com.br/minecraft-pro",
    "https://streethosting.com.br/vps/ryzen",
    "https://streethosting.com.br/minecraft"
  ],
  "relatedGuides": [
    "https://streethosting.com.br/guias/minecraft/como-reduzir-lag-servidor-paper",
    "https://streethosting.com.br/guias/minecraft/o-que-e-tps-minecraft-como-melhorar",
    "https://streethosting.com.br/guias/minecraft/configurar-aikar-flags-jvm-minecraft"
  ],
  "content": {
    "format": "markdown",
    "body": "> **Resposta rápida**\n>\n> O **spark** é o profiler padrão de servidores Paper, Purpur, Fabric e Forge. Instale o jar, rode `/spark profiler start` durante o pico real, encerre com `/spark profiler stop` e siga sempre o ramo de maior percentual da árvore até achar um pacote que não seja do Minecraft. Para pular a leitura crua, cole o link do profile no tickdoc, que devolve o culpado e as correções ordenadas por impacto.\n\n## TPS e MSPT: qual número olhar\n\nO servidor de Minecraft processa o mundo em ticks, vinte por segundo. Cada tick tem um orçamento de cinquenta milissegundos para fazer tudo: mover mobs, calcular redstone, crescer plantação, rodar plugin, salvar chunk. Se o trabalho couber nesse orçamento, o tick termina e o servidor espera o próximo. Se não couber, o tick atrasa e o TPS cai.\n\n| MSPT médio | TPS resultante | Como o jogador sente |\n| --- | --- | --- |\n| Até 25 ms | 20 | Nada. Folga confortável |\n| 25 a 40 ms | 20 | Ainda liso, mas sem margem para pico |\n| 40 a 50 ms | 20 | Engasgos ocasionais nos picos |\n| 50 a 70 ms | 16 a 19 | Mobs travando, blocos demorando a quebrar |\n| Acima de 100 ms | Abaixo de 10 | Servidor praticamente injogável |\n\nRepare no que a tabela mostra: entre 25 e 50 milissegundos o TPS marca vinte o tempo todo, e mesmo assim o servidor foi de confortável a quase estourando. É por isso que o MSPT é o número honesto. O TPS só conta a história depois que o estrago já aconteceu.\n\n> **Dica**\n>\n> Olhe também o MSPT máximo, não só o médio. Um único tick de 400 ms no meio de um minuto tranquilo some na média mas é exatamente a travada que o jogador reclamou no Discord. Para a explicação básica do conceito, veja [o que é TPS e como melhorar](https://streethosting.com.br/guias/minecraft/o-que-e-tps-minecraft-como-melhorar).\n\n## Instalar o spark\n\nO spark tem build para cada plataforma, e a instalação é a de qualquer plugin ou mod.\n\n1. Baixe a build correspondente à sua plataforma: Bukkit e derivados para Paper, Spigot e Purpur, ou a build de Fabric ou de Forge se for servidor modado.\n2. Coloque o jar em `plugins/` ou em `mods/`, conforme o caso.\n3. Reinicie o servidor e confirme que ele carregou no log de boot.\n4. Verifique que a sua conta tem a permissão do plugin, senão os comandos não respondem.\n\nMuitas builds modernas de Paper e vários modpacks já trazem o spark incluído. Rode `/spark` antes de instalar: se responder, está tudo pronto.\n\n## Os comandos que importam\n\n| Comando | O que faz | Quando usar |\n| --- | --- | --- |\n| /spark tps | Mostra TPS e MSPT em várias janelas de tempo | Primeiro comando sempre. Confirma se existe problema |\n| /spark health | Memória, garbage collector, CPU e disco | Quando a suspeita é hardware ou heap, não plugin |\n| /spark profiler start | Começa a gravar a amostragem das threads | Com o lag acontecendo, no horário de pico |\n| /spark profiler stop | Encerra e devolve o link do resultado | Depois de três a cinco minutos gravando |\n| /spark profiler start --timeout 300 | Grava por um tempo fixo e encerra sozinho | Quando você não vai estar online para parar |\n| /spark profiler start --thread * | Perfila todas as threads, não só a principal | Investigar tarefa assíncrona ou I/O de disco |\n\n> **Dica**\n>\n> Comece sempre por `/spark tps` e `/spark health`. Se o MSPT está confortável e a memória saudável, o lag que os jogadores relatam pode ser de rede e não de servidor, e nenhum profile vai mostrar isso.\n\n## Quando e por quanto tempo perfilar\n\nEssa é a parte que a maioria erra. Um profile tirado com o servidor vazio às três da manhã prova apenas que um servidor vazio não tem lag.\n\n- **Perfile sob carga real.** Com os jogadores que costumam estar online no pior horário, fazendo o que costumam fazer.\n- **Três a cinco minutos.** Abaixo disso a amostragem captura ruído. Muito acima, o pico que você quer investigar se dilui numa média longa e some.\n- **Comece um pouco antes do evento.** Se o lag aparece quando abre a loja, quando alguém liga a fazenda de mobs ou quando o mundo salva, ligue o profiler alguns segundos antes.\n- **Um profile por hipótese.** Guarde o link de cada gravação. Comparar o antes e o depois de uma correção vale mais do que qualquer teoria.\n\n> **Atenção**\n>\n> Não tire conclusão de profile com menos de um minuto. O spark trabalha por amostragem: pouco tempo significa poucas amostras, e poucas amostras produzem percentuais que mudam a cada tentativa.\n\n## Como ler a árvore de chamadas\n\nO resultado do spark é uma árvore. No topo ficam as threads, e dentro de cada uma as chamadas que consumiram tempo, cada uma com um percentual. A regra de leitura é simples e sempre a mesma.\n\n1. Abra a thread principal do servidor. É ela que define o MSPT, e portanto o TPS.\n2. Ignore os percentuais pequenos. Comece pelo ramo mais gordo, aquele que sozinho leva um pedaço grande do total.\n3. Expanda esse ramo e repita: dentro dele, siga de novo o filho de maior percentual.\n4. Continue descendo até o nome do pacote deixar de ser `net.minecraft` ou `org.bukkit`. O primeiro pacote de terceiro que aparecer é o consumidor real.\n5. Se o ramo termina inteiro dentro do código do jogo, o consumo é do próprio mundo: entidades, chunks, redstone. Aí a correção é de configuração ou de conteúdo, não de plugin.\n\n> **Dica**\n>\n> O tickdoc faz esse caminho por você: você cola o link do profile e ele aponta qual plugin, mod ou tarefa está pesando, separa o que é ajuste de configuração do que é limite de hardware e ordena as correções por impacto. Ele fica na página de [ferramentas gratuitas](https://streethosting.com.br/ferramentas) junto com os outros utilitários de diagnóstico.\n\n## Os padrões clássicos de lag\n\nDepois de ler alguns profiles, você começa a reconhecer as formas. Estas cinco cobrem quase tudo que aparece num servidor comum.\n\n### Entidade demais\n\nRamos ligados ao tick de entidade e a buscas por entidades próximas dominando o percentual. Costuma ser fazenda de mobs, animais acumulados numa fazenda de jogador, itens no chão que ninguém pegou ou armazenamento com centenas de hoppers. A correção é limitar densidade de mobs, ajustar o agrupamento de entidades da build e caçar a construção culpada pelas coordenadas.\n\n### Geração de chunk\n\nRamos de geração e carregamento de terreno pesando muito. Acontece quando alguém está explorando de elytra em terreno novo, ou quando um plugin de mundo dinâmico gera área o tempo todo. Se o mundo tem borda definida, gerar o terreno antes com uma ferramenta de pré geração tira esse custo do horário de pico.\n\n### Plugin em tick síncrono\n\nUm pacote de plugin aparecendo alto na thread principal. Quase sempre é uma tarefa que deveria ser assíncrona: consulta a banco de dados, chamada a uma API externa, leitura de arquivo grande. O tick fica parado esperando a resposta. Sem código na mão, a saída é atualizar o plugin, ajustar a frequência da tarefa na configuração dele ou trocar por uma alternativa.\n\n### Garbage collector\n\nNo `/spark health` aparecem pausas de coleta longas e frequentes. Aqui o inimigo não é um plugin específico, é a JVM devolvendo memória de forma desajeitada. As [Aikar Flags](https://streethosting.com.br/guias/minecraft/configurar-aikar-flags-jvm-minecraft) existem exatamente para isso, quebrando a pausa grande em várias pausas curtas.\n\n### I/O de disco\n\nChamadas de escrita e salvamento de região consumindo tick, muitas vezes concentradas de tempos em tempos. É o autosave do mundo em disco lento, ou backup rodando no mesmo volume durante o horário de jogo. Mover o backup para fora do pico resolve grande parte dos casos.\n\n- [ ] Profile tirado sob carga real, não com servidor vazio\n- [ ] Pelo menos três minutos de gravação\n- [ ] Ramo de maior percentual identificado até o pacote de terceiro\n- [ ] Uma correção aplicada por vez\n- [ ] Novo profile no mesmo horário para comparar\n\n## Configuração ou limite de máquina\n\nA pergunta que o profile responde melhor do que qualquer outra coisa é se vale a pena continuar ajustando ou se chegou a hora de trocar de hardware. O critério é a forma da árvore.\n\n| O que o profile mostra | Diagnóstico | O que fazer |\n| --- | --- | --- |\n| Um ramo levando fatia grande do total | Problema pontual e corrigível | Atacar aquele plugin, entidade ou tarefa |\n| Tempo espalhado por igual, sem dominante | A máquina está no limite | Reduzir carga ou subir de plano |\n| Pausas de coleta de memória frequentes | JVM mal ajustada ou heap curto | Aikar Flags e revisão de memória |\n| Picos em horário fixo | Tarefa agendada, backup ou autosave | Mover a tarefa para fora do pico |\n\nQuando a conclusão for capacidade, lembre que Minecraft depende quase tudo de uma thread só. Mais núcleos não ajudam tanto quanto núcleos mais rápidos, e é por isso que uma [VPS Ryzen](https://streethosting.com.br/vps/ryzen) com clock alto rende mais em MSPT do que uma máquina com o dobro de núcleos e clock baixo. Se você prefere não administrar servidor, os planos [Minecraft Pro](https://streethosting.com.br/minecraft-pro) já entregam esse tipo de hardware pronto.\n\nE antes de qualquer troca, passe pela lista de ajustes que costuma devolver MSPT sem custo nenhum, reunida em [como reduzir o lag no servidor Paper](https://streethosting.com.br/guias/minecraft/como-reduzir-lag-servidor-paper)."
  }
}
