Série da semana: Primeiros passos no React

Veja mais

Sistema e ou Firebird lento ao longo do dia

14/03/2016

3

Bom dia a todos.

Gostaria de verificar se alguém já passou por isso ou tem ideia do que pode estar ocorrendo, estou com um sistema que onde ao longo do dia vai ficando lento com o uso, chegando a travar por mais de 40 minutos processando em um único ponto. Para efeito de testes, foi realizado o seguinte cenário:

Servidor I5 4GB, Terminal I5 4GB. Sistema instalado no servidor e somente atalho em terminal. Banco de dados Firebird 2.1 (embora já realizamos testes com 1.5, 2.0 e 2.5 e o resultado sempre é o mesmo). Para todos os testes e em ambos os computadores foram utilizados os mesmos dados e os mesmos processos dentro do sistema, e o resultado final sempre da mesma forma, processo inicia e finaliza em 1 minuto, já em seguida no segundo teste com os mesmos dados e processos inicia e finaliza em 1 minuto e 30 segundos, e assim por diante (tempo varia bastante este que passei é somente para elucidar) sempre em estado crescente.

Para simulação da rede utilizamos um switch entre os dois computadores com configuração basica, somente para que os dois trocassem informações, e também ligação ponto a ponto, terminal diretamente no servidor, e o resultado se repete.

Realizamos tratamentos no sistema como fechamento de transações e limpeza de memória.

Buscamos manter o padrão em todos os testes, afim de tornar o resultado esperado o mesmo sempre, lembrando que os tempos variam tanto no servidor quanto no terminal.

Se alguém já passou por isso, ou tem alguma dica para o que podemos melhorar agradeço,
Responder

Posts

14/03/2016

Rafael Bosco

Por que não deixa apenas o banco de dados no Servidor, e os programas instalados nos Terminais? O Firebird está sendo executado nas máquinas como Aplicação ou Serviço? O servidor é um Windows Server? Qual o componente de conexão no Delphi que utilizou para compilar a aplicação?
Responder

15/03/2016

Diego Ramos.

Bom dia, hoje fizemos mais um teste in loco no cliente. Colocando local o executavel ficou bem mais lento a utilização do que trazendo o exe do servidor, os terminais executam o firebird como aplicação, testamos em dois servidores, sendo um Windows Server 2012, e um com Windows 10, ambos apresentaram os mesmos resultados. Usando o DBExpress para compilar a aplicação.
Responder

15/03/2016

Marcos P

Diego,

Esses testes controlados que vocês fizeram compreendem acesso concorrente ou apenas stand-alone ?

Se forem testes concorrentes, procure monitorar os locks gerados no banco. Pois a ocorrência de dead-locks pode travar todo o ambiente.

Se forem testes stand-alone, procure verificar as áreas de cache e o uso de memória / processador no servidor.

Outra possibilidade, uma vez que vocês conhecem exatamente o processo que gera o erro, é tentar reescrevê-lo ou encapsulá-lo de maneira diferente no banco.

Por exemplo :

> se for uma query ( ou queries ) do lado da aplicação, é possível convertê-lo para uma SP no banco ?
> se for uma trigger, é possível convertê-la em SP ( mesmo que apenas para fins de teste ) ?

Se o processo for extenso, cabe, ainda decomposição... refinando a performance de cada uma das queries e isolando eventuais dependências entre objetos que compõem o processamento.

Uma outra possibilidade é tentar montar todo o processamento do lado do banco.
Se o problema persistir o Firebird não está dando conta. Se melhorar o problema é do lado da aplicação ou infraestrutura...

Boa sorte !
Responder