Servidor - Memório RAM, Banco de Dados, Recursos limitados

Meu servidor é um pc antigo, o 1º processador da geração 64bits, mas é fraquinho, 1core, 512MB Ram, e ele tá sofrendo tanto com o tomcat, as informações armazenadas pelo ScadaBR já somam 1GB devido à alguns datapoints, principalmente um termômetro virtual que atualiza a cada 200ms e não consigo apagar pelo ScadaBR. O tomcat chega a consumir 84% da memória do PC.

Fiquei abismado com essa porcentagem, aí resolvi instalar o XFCE, ainda não estava bom e fui pro Fluxbox, já já vou ter que tirar até a parte gráfica…
Enfim, vou na configuração do sistema e lá em cima do lado esquerdo tem “Tamanho da base de dados” onde posso descartar a base de dados, em baixo do lado direito tem “Descartar todos os dados”, qual a diferença entre eles? Em ambos não consegui apagar clicando, ele demora muito, e fica uma mensagem em vermelho pedindo pra esperar,

Obs.: Um problema que percebo as vezes é que mando fazer uma ação demorada e fico esperando mesmo já tendo acabado porque o ponteiro do mouse nunca sai da ampulheta, será que tem como mudar isso? Acho que faz parte da atualização automática.

voltando, também tentei entrar em cada datapoint pela watchlist e apagar de cada um o valor, mas não deu, já limitei pra guardar menos dados, mas como o processo certo não funcionou fui tentar o errado, vasculhando achei algumas pastas suspeitas do crime que no meu caso são:

/ScadaBR/Apache blabla/logs com 6,3GB
/ScadaBR/Apache blabla/mango DB com 3,1GB

são as maiores pastas e mais significativas.

Queria saber se tem problema apagar elas ou só o conteúdo delas pra resolver meu problema? Não tenho nenhum dado armazenado ou alarme que quero manter.

Abraços!

Olá Fabio,

O mangoDB nas primeiras versões do ScadaBR é a pasta do banco de dados com toda a aplicação, então já sabe né…

Já o LOG, se estiver tudo bem com o sistema você pode apagar esse arquivo ele será criado automaticamente, do contrário ele te serve como ferramenta de debug.

Abraços,

Bom dia,

O banco de dados padrão é o Derby para que a aplicação funcione automaticamente, sem a necessidade de instalar um outro aplicativo. O Derby é um banco de dados muito bom, mas é um outro aplicativo Java. Isso quer dizer que, para aplicações de menor responsabilidade e/ou para demonstrações, o Derby é mais do que suficiente, mas à medida que a responsabilidade cresce, torna-se necessário rever a questão da persistência dos dados.
O ScadaBR atualmente oferece 3 opções de armazenamento de dados: Derby, MySQL e MSSQL. Como opções ao Derby, ambas soluções apresentam melhor desempenho para aplicações de maior responsabilidade, mas o MSSQL necessita de uma plataforma Windows.
Como sua aplicação tem aquisições a cada 200 milissegundos, sugiro considerar a possibilidade de uma migração da base de dados.
Este procedimento é bastante simples, mas requer alguns cuidados.

  1. Instalar o MySQL versão 5.1.x e configura-lo para iniciar automaticamente durante a inicialização do servidor;
  2. (opcional) Criar um usuário do banco de dados específico para a aplicação;
  3. Criar uma base de dados chamada “scadabr”;
  4. Parar o servidor Tomcat;
  5. Editar o arquivo <Tomcat_home>/webapps/ScadaBR/WEB-INF/classes/env.properties conforme instruções deste post do fórum do Mango (projeto pai do ScadaBR).
    http://mango.serotoninsoftware.com/forum/posts/list/185.page
  6. Reiniciar o Tomcat.

Se tudo der certo, o ScadaBR passará a utilizar o MySQL como banco de dados e todos as informações serão convertidas. Dependendo do tamanho da base de dados Derby e da configuração do servidor, isso pode levar alguns (ou vários) minutos.

Quanto à memória do Tomcat, existem algumas opções que podem ser feitas para definir a quantidade de Heap memory disponível. Uma busca rápida no Google por “tomcat memory configuration” retornou diversas respostas. Algumas que achei interessante são:

Item 3 em http://www.chemaxon.com/jchem/doc/admin/tomcat.html
http://mhashem.wordpress.com/2008/08/25/set-tomcat-memory-heap-size/
http://stackoverflow.com/questions/4793057/tomcat-memory-settings
http://www.zulutown.com/blog/category/tomcat/
http://javahowto.blogspot.com/2006/06/6-common-errors-in-setting-java-heap.html

Espero que isso possa ajudar! Se der certo, nos avise, por favor!

Boa sorte!

Um abraço,
GTL

1 curtida

Caro Fábio,

Sobre o banco de dados a resposta é bem simples: Derby se quiser comodismo e MySQL se quiser performance.

Nos datapoints que sua aplicação monitora, verifique a necessidade de armazenar todo valor a cada novo time stamp. Será que armazenar somente qdo houver mudança do valor da variável atenderia? Isso vc pode configurar no datapoint e o banco de dados agradecerá.

Sobre a memória, procure utilizar o JCONSOLE que vem com o JAVA para monitorar uso de memória e outros parâmetros. Se concluir que existe insuficiência de recursos, procure TUNAR os parâmetros do JVM. Normalmente a configuração default é um meio termo entre latência e throughput. Tunando o JVM vc precisará testar com cuidado e critério as configurações inseridas para constatar se a sua aplicação está precisando diminuir a latência ou aumentar o throughput. Procure no Google antes de começar, tem muito material sobre TUNE do JVM.

Abs.

Fiquei impressionado com tantas respostas em tão pouco tempo, ótimo, então galera, eu to mais afim mesmo é da comodidade, foi bobeira minha de ter deixado o termômetro com 200ms, era só pra teste, já vou reconfigurar pra 1 segundo que tá ótimo, só que com essa minha bobeira lotou o sistema, essa noite deixei o servidor dormir tranquilinho desligado e parece que hj tá até mais rápido, mas entrei na pasta LOGS e dei um “du -ha” pra ver o tamanho dos arquivos e dos 6,3GB achei o “catalina.out” com 3,1GB, até procurei ajuda no google pra ver se podia apagar ele, tem até alguém aqui do ScadaBR que pediu pra um usuário mandar o catalina.out por e-mail pra ele ver o erro, no meu caso seria impossível haiuAUIHI, só se eu gravasse um blueray, então apaguei tudo com um “rm -r” reiniciei o tomcat e parece que está tudo ótimo, to com prazo estourando pra eu qualificar meu mestrado e preciso do ScadaBR pra isso, então não vou nem pensar em perder algumas horas ou dias pesquisando como TUNAR o bixinho do JVM, mas quem sabe depois eu dou uma olhada.

Ah, meus dados não precisam ser mantidos por tanto tempo não, no máximo 1 dia eu creio, antes tava pra 1 ano lá em configurações. Já arrumei.

  1. Pergunta, o ScadaBR é inteligente o suficiente pro caso de eu configurar o lá em “configurações de sistema” pra descartar tudo com mais de 1 dia e no datapoint eu deixar pra descartar com 1 ano? Ele vai saber que a configuração do sistema é mais prioritário que a configuração do datapoint?

2)Vou repetir e manter a pergunta lá de cima:
Enfim, vou na configuração do sistema e lá em cima do lado esquerdo tem “Tamanho da base de dados” onde posso descartar a base de dados, em baixo do lado direito tem “Descartar todos os dados”, qual a diferença entre eles?

Valeu galera, assim que se faz uma comunidade forte!
Abraço!