[firebase-br] Ubuntu + Firebird 2.0 = processador com 100%
Daisson
daisson em gmail.com
Seg Fev 19 15:18:45 -03 2007
Olá lista.
Temos uma situação um pouco estranha ocorrendo em um cliente. Abaixo
segue os detalhes.
O banco de dados está num micro HP Xeon 3.2GHz com 1GB RAM e HD SCSI
com 15.000rpm.
O acesso é feito através de WTS num Pentium 4, 3.0GHz com 4GB de RAM e
HD SATA com 7.200rpm.
Diariamente são 33 pessoas conectadas ao servidor (23 utilizando o
nosso sistema e os demais utilizando o sistema de Folha de Pagmento
(não sei qual é o sistema)).
O problema é o seguinte:
Sempre quando algum dos usuários conectados ao nosso sistema executa a
geração de um balancete/balanço o sistema 'congela' para os demais
usuários. A geração do balancete/balanço não esta dentro de Stored
Procedures, porém o processo consiste basicamente em INSERT INTO
'tabela' SELECT 'dados'. O detalhe é que o processo do firebird no
servidor de banco de dados (ubuntu) alcança os 100% e fica assim até o
fim da geração do balancete/balanço (algo em torno de 2min), e o 'load
average' alcança de 0.95 a 0.99.
Analisando o firebird.log, no dia de hoje, percebi o seguinte:
db (Server) Mon Feb 19 09:57:29 2007
INET/inet_error: read errno = 104
db (Server) Mon Feb 19 09:57:29 2007
INET/inet_error: read errno = 32
db (Server) Mon Feb 19 14:42:34 2007
INET/inet_error: read errno = 104
db (Server) Mon Feb 19 14:48:22 2007
INET/inet_error: read errno = 104
db (Server) Mon Feb 19 14:48:22 2007
INET/inet_error: read errno = 104
db (Server) Mon Feb 19 14:48:22 2007
INET/inet_error: read errno = 104
Esses erros podem ser a causa do problema?
Claro que o processo de geração de balancete/balanço deve ser
melhorado. Talvez todo ele dentro de stored procedures. Todo o processo
inclui aproxidamente 2.500 registros. Sendo que a tabela principal da
base de dados desse cliente tem mais de 900.000 registros. Outro
detalhe talvez impostantíssimo é que não temos nenhum índice na tabela
temporária que armazena a geração do balancete/balanço.
Gostaria de sugestões para que eu possa entender o que é melhor fazer
para solucionar o problema.
Obrigado.
--
Daisson
Pinhalzinho - SC
Mais detalhes sobre a lista de discussão lista