PDA

Ver la Versión Completa : Problemas de rendimiento.


AMINOA2R
01-07-2005, 13:38:01
Los lunes arranco la semana encendiendo todos los equipos y estos, van apagandose y encendiendose durante la semana hasta el sabado teniendo siempre como mínimo 15 equipos conectados a interbase 7.1 sin embargo, conforme voy avanzando la semana va un poco más lento cuando la peña va pidiendo informes, pedidos, etc... hasta que llego al viernes y sabado que ya va lentisimo.


Me he dado cuenta en el servidor que en los procesos, el IBCONSOLE.EXE llega hasta los 110MB de uso de memoria y los lunes sin embargo esta en niveles de 45 ó 50 MB.


Hay alguna manera de hacer que baje el uso de memoria sin tener que echar a la peña de la aplicación ?

Rufus
01-07-2005, 14:21:28
No utilizo Interbase sino firebird 1.5, pero, ¿el ibconsole no es el GUI que trae interbase? Supongo que eso no tendra que ver con el servidor en sí, bastará con cerrar el ibconsole y listo.

En el servidor de base de datos de donde trabajo he mirado los procesos de firebird y son (en uso ahora mismo):

-fbserver: 5.960 Kb
-fbguard: 736 Kb

...y no hay ninguno mas (ni deberia). Si las cosas no han cambiado demasiado, en interbase es probable que los procesos sean ibserver e ibguard. Buscalos y mira a ver.

Por otra parte el servidor tiene tareas automaticas, hace un backup y restore de todas las bases de datos en horario cuando no hay nadie (o no deberia haber nadie, no hay seguridad 100%), esto es entre las 2 y las 4 de la madrugada. Si fuera un servidor 24 x 7 seria mas dificil hacer el restore. Te digo esto porque quiza así mejore el desempeño.

Un saludo.

AMINOA2R
01-07-2005, 16:51:24
Efectivamente, los archivos que aparecen en el administrador de tareas son el ibserver.exe y el ibguard.exe

El IBSERVER.EXE me esta ocupando 96MB y wl IBGUARD 200ks.

La clave esta en el IBSERVER. No se porque me esta chupando tanta RAM.

jachguate
01-07-2005, 17:09:44
La clave esta en el IBSERVER. No se porque me esta chupando tanta RAM.

Esto no tiene por que ser necesariamente malo, siempre que el servidor no se vea obligado a hacer swap de memoria. En ese caso, el rendimiento bajaría increiblemente.

¿Has intentado buscar soporte en tu distribuidor de borland?
¿Estas usando alguna UDF? ¿Has hecho tests sobre ella?

Es probable que el proceso esté dejando memoria perdida por alli y si esto obliga a paginar allí esté la razón del mal rendimiento.

La memoria virtual es algo que agradecer en una máquina de escritorio con poca memoria y un usuario con multiples aplicaciones, pero es lo peor que puede ocurrir en un servidor, desde el punto de vista del rendimiento.

Hasta luego.

;)

case
03-07-2005, 01:57:23
Asegurate de que las transacciones se están cerrando.
Un monton de transacciones abiertas es memoria que queda asignada en el servidor y pueden empobrecer el rendimiento.
Además es un error muy comun si el programador que construyó las aplicaciones viene de entornos en donde las transacciones no existen (paradox, fox, access, etc.). Generalmente deciden que es "mas facil" abrirlas y dejarlas abiertas hasta que "la aplicacion las cierre solas cuando se cierre".
Es increible los casos que he visto en los que un poquito de orden y disciplina hacen que el motor vuele.
He trabajado mucho tiempo con Interbase y Firebird y no he encontrado ningun caso en que el servidor "sin motivo" consuma mas y mas memoria (generalmente es muy bueno reutilizando los recursos ociosos).

Casimiro Notevi
03-07-2005, 12:50:38
Seguramente tienes puesto la base de datos en modo asíncrono, cámbiala a síncrono, esto hace que grabe todo al momento en vez de guardarlo en memoria.
gfix -write sync -user sysdba -password masterkey labasededatos.fdb

AMINOA2R
05-07-2005, 00:46:31
Podría ser util hacer un sweep con el ibconsole ? Se que quita basura pero no se si teniendo a toda la peña tirando de interbase puedo usarlo y que me de más recursos.

En cuanto a lo que me decís, lo probaré todo.

saludos y gracias

rastafarey
11-07-2005, 15:57:11
1. Puede ser que te este quedando muchas trannsacciones en el limbo.

Pero estas seguro que el problema es con el servidor y no con los clientes.

Puede haber muchas causas.

AMINOA2R
13-07-2005, 01:08:16
Suponiendo que fuesen transacciones en el limbo...!


Como puedo finalizarlas sin parar el ibserver?

Rufus
13-07-2005, 09:21:57
Transacciones en el limbo no vas a tener a no ser que uses transacciones en dos fases, que se preparan primero con prepare y que se utilizan cuando hay implicada más de una base de datos en la transacción.

Tu asegurate de que en las aplicaciones de los clientes se están cerrando debidamente las transacciones.

Un sweep lo puedes hacer cuando quieras, preferentemente cuando menos clientes tenga conectado el servidor para no ralentizar. Utiliza la herramienta de consola gfix tal que asi:

gfix -sweep basededatos -user SYSDBA -password password