[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