SimpleClans

SimpleClans

467k Downloads

SimpleClans is lagging

JH3Y50N opened this issue · 31 comments

commented

image

Commands:
/clan accept
/clan deny

commented

Me mande a sua config.

commented

Parece que o culpado é o SQLite.
Vi que você marcou "use-threads" como true, mas as conexões do SQLite não estão usando isso, então tá indo no main thread.
Vou corrigir isso para ver se resolve o lag.

commented

eu marquei para true para ver se o lag parava mas não adiantou nada

commented

Com use-threads false não tem milagre que eu possa fazer.

commented

Com use-threads false não tem milagre que eu possa fazer.

conexão SQL é aberta cada vez que o plugin faz uma nova query ou ela fica aberta até dar time out?

commented

use-threads está false?

commented

use-threads está false?

sim está em false, queria testar o problema, mesmo ele estando em false ou em true continua lagando então é isso.

commented

Mande um timings com o use-threads true.

commented

Mande um timings com o use-threads true.

vou adiantar, já mandei um antes e o simpleclans não aparecia, mas o simpleclans está causando o lag de CPU usando Threads, ele usa muito CPU assim fazendo o load subir

commented

Fica aberta durante a execução do plugin.

então como ele consegue lagar com uma conexão SQL, já pensou em usar flatfile em modo yml ou json? talvez reduza o lag porque acredito que seja o SQL que esteja lagando, uma boa é fazer o plugin salvar tudo em cache e guardar as coisas no banco de dados perioticamente em modo Async ou salvar quando o cache tiver muitas modificações criticas que precisem ser salvas, neste caso ele iria salvar o cache todo

commented

O SC já guarda os dados em cache e salva de modo async se ativar "use-threads".

Ative a opção e rode o timings no horário que você percebe o maior lag.
Pode ser algum outro plugin causando isso...

commented

O SC já guarda os dados em cache e salva de modo async se ativar "use-threads".

Ative a opção e rode o timings no horário que você percebe o maior lag.
Pode ser algum outro plugin causando isso...

sim mas pelo que notei você salva constantemente os novos dados do cache, isso criando muitas queries no SQL

commented

Fica aberta durante a execução do plugin.

commented

Mas de forma async.

commented

Mas de forma async.

sim de forma Async, ou seja continua usando CPU fazendo o load do CPU subir causando um lag em toda a máquina

commented

Ative a opção e rode o timings no horário que você percebe o maior lag.
Pode ser algum outro plugin causando isso...

commented

Ative a opção e rode o timings no horário que você percebe o maior lag.
Pode ser algum outro plugin causando isso...

deixa, irei fazer um plugin de clã novo acho que isso irá resolver meu problema, de qualquer forma enquanto eu estiver usando o SimpleClans irei reportar os problemas que eu encontrar.

commented

Sim, fazer um plugin realmente é mais simples do que rodar um teste...

commented

Resolvi implementar o salvamento periódico:
SimpleClans-v.2.10.2.zip

Me diga se resolve o lag...

commented

Resolvi implementar o salvamento periódico:
SimpleClans-v.2.10.2.zip

Me diga se resolve o lag...

ok, coloquei no servidor amanhã vejo quando

commented

https://timings.aikar.co/?id=e2d678b5e83b471d965d8a858e28fc66

média de 100 jogadores online, quando tiver uns 200 eu mando outro timings

Praticamente todo o lag foi causado pela task que salva
image

commented

SimpleClans.getInstance().getServer().getScheduler().scheduleSyncDelayedTask(SimpleClans.getInstance(), new Runnable() {

Parece que esse é o culpado.

commented

SimpleClans.getInstance().getServer().getScheduler().scheduleSyncDelayedTask(SimpleClans.getInstance(), new Runnable() {

Parece que esse é o culpado.

se ele está causando lag são os métodos ali o problema, tem que ser optimizado se possível, o problema é no "delete" do clã, por conta do SQL.

commented

o problema é no "delete" do clã, por conta do SQL.

Exatamente.
Qual seria a sua sugestão para resolver?

commented

81360776-14c19c80-90b3-11ea-8954-156ed8bcdf60
A contagem foi de apenas 1 task, como você pode ver em count(1).
Batch nesse caso parece ser desnecessário, não é a todo minuto que se deleta um clã.
(No caso dos updates, faz sentido, porque no último timings tinham umas mil queries. Mas nessa correção já estão em batch)

commented

o problema é no "delete" do clã, por conta do SQL.

Exatamente.
Qual seria a sua sugestão para resolver?

deixar o sistema todo em cache e salvar o SQL em uma batch só de tempos em tempos em modo Async, não ficar enviando um milhão de queries para o SQL ajuda... envie menos queries..

commented

Testou novamente com mais players?

commented

Testou novamente com mais players?

https://timings.aikar.co/?id=5e7980e7db49407695c9c2efed0cafb2 em um final de semana eu mando outro, mas teme esse com 120

commented

Parece ter resolvido.
Sobre o clan delete, ativando use-threads resolve. (Não vai ter milhares de async tasks)

Vou fechar aqui. Se aparecer o lag no fim de semana, me avise.