Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-03-2018
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 14
Poder: 0
Sergio-ponchito Va por buen camino
Fallos de memoria en Firebird (error 335544676)

Buenos días,

Actualmente tengo un servidor Firebird 1.5 SuperServer en una máquina Windows Server 2016 con 32 gb de RAM. EL servicio de firebird está utilizando aproximadamente 1GB de memoria RAM y me lanza errores que no dispone de memoria para ordenar (error 335544676 sort_mem_err Sort, not enough memory).

La configuración del fichero de configuración firebird.conf es:
DefaultDbCachePages = 9999
SortMemUpperLimit = 267108864
TempDirectories = E:\FirebirdTMP (disco duro solo para temporales)

He estado probando en incrementar la DefaultDBCachePages a 131072, el SortMemUpperLimit a 536870912 y por último he cambiado el page size de la base de datos al máximo (16384) pero sigue provocando el error de memoria.

¿Alguna idea para solventar este error?
pdt: Por si sirve de interés se conectan al rededor de 100 usuarios a la base de datos.
Gracias de antemano!
Responder Con Cita
  #2  
Antiguo 22-03-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Así, sin ver nada físicamente, primero revisaría ese disco E:
En cuanto al cambio que has hecho, mejor déjalo como estaba.
Responder Con Cita
  #3  
Antiguo 22-03-2018
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 14
Poder: 0
Sergio-ponchito Va por buen camino
Actualmente el disco E dispone de 120gb y utilizados no llega a 5 gb de la carpeta temporal. Todo esta virtualizado en una cabina Flash.
Con los parámetros por defecto también tengo el mismo problema, por eso he incrementado para ver si se solventaba.

Tambíen hemos pensado en dar el salto a la versión 3.0 SuperClassic que admite más uso de memoria RAM.
Responder Con Cita
  #4  
Antiguo 22-03-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira esta sección del fichero de configuración de firebird:
Cita:
# ----------------------------
# Temporary space management
#
# Temporary storage is used by the sorting module, it's also
# intended to store temporary datasets etc.
#
# The parameters below handle the allocation and caching policy
# for the temporary space manager. In previous Firebird versions,
# they were prefixed with "SortMem" instead of current "Temp".
#
# The smallest block size being allocated in the temporary storage.
# This value reflects the allocation granularity.
#
# Type: integer
#
#TempBlockSize = 1048576

#
# The maximum amount of the temporary space that can be cached
# in memory.
#
# For Classic servers, this setting is defaulted to 8 MB.
# Although it can be increased, the value applies to each client
# connection/server instance and thus consumes a lot of memory.
#
# Type: integer
#
#TempCacheLimit = 67108864
Mira también esta respuesta de Hellen Borrie a alguien, es muy antigua, pero lo mismo te sirve.

También, obviamente, deberías mirar los procesos que se ejecutan en el sistema para localizar el problema, pues no sabes si ocurre con todos conectados o si ocurre también con que haya solamente 1 conexión.
Puede ser incluso, lo más habitual, provocado por un informe (reporte) que realiza varios "select *" de varias tablas grandes, ordenadas por campos sin índice, agrupados por campos sin índice, etc.

También deberías plantearte el cambiar el servidor a Linux e instalar una versión "classic", notarás mucho la diferencia.
100 conexiones no es nada, no deberías tener problema alguno.
Responder Con Cita
  #5  
Antiguo 22-03-2018
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 14
Poder: 0
Sergio-ponchito Va por buen camino
Esta tarde le echaré un vistazo a la configuración pero creo recordar que esos parámetros son para la versión 2.0 en adelante.

Por otro lado, ¿veis factible cambiar de versión SuperServer a Classic o SuperClassic, manteniendo firebird 1.5? Si con esto mejora podríamos aplicar el cambio de versión esta fin de semana.
Responder Con Cita
  #6  
Antiguo 22-03-2018
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 14
Poder: 0
Sergio-ponchito Va por buen camino
He instalado la versión Classic y he tenido problemas para acceder con los usuarios a la base de datos.

He tirado de snapshot y he probado con los siguientes parámetros (que son los que tenia antes de que la base de datos fallara):
TempDirectories = E:\FirebirdTMP
DatabaseAccess = Full
ExternalFileAccess = Full

Además todo esto ha empezado después de cambiar el parámetro CPUAffintyMask a 255 para usar los 8 núcleos. Cuando tuvimos el fallo dejé el fichero de configuración como estaba pero el problema de memoria persistió.
Os comento esto por si os sirve de ayuda.
Responder Con Cita
  #7  
Antiguo 22-03-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No puedes dar palos de ciego, lo único que estás consiguiendo con cambios sin control es "enfangar" todo.
Tampoco has dicho cómo has hecho el cambio de versión, se supone que habrás seguido los pasos correctos, o sea:
Cita:
- Backup transportable de la base de datos.
- Desinstalación completa de firebird y borrado manual de todos los gds32dll y fbclient.dll que encuentres en el equipo.
- Instalación de la nueva versión de firebird.
- Restore de la base de datos, ya con la nueva versión de fb.
- Instalación del cliente firebird en todos los terminales.

Última edición por Casimiro Notevi fecha: 22-03-2018 a las 20:06:54.
Responder Con Cita
  #8  
Antiguo 22-03-2018
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 14
Poder: 0
Sergio-ponchito Va por buen camino
Hemos hecho una prueba pero hemos vuelto al estado en el que estábamos antes.
El procedimiento que hemos realizado ha sido el mismo que has indicado.
-Backup de la base de datos.
-Eliminación de la aplicación.
-Instalacion de la misma versión de Firebird en modo Classic.
-Comprobación en el cliente (el fbclient no se ha cambiado).

Tras probarlo, al detectar los fallos hemos tirado de la snapshot ya que el margen de tiempo que disponíamos para probarlo era bastante corto (menos de 1 hora).
Al menos esta tarde ha estado funcionando sin fallos pero no creo que tarde mucho en volver producirse el fallo.

Creo que lo más recomendable será pasar este fin de semana la versión 1.5 a la 3.0 que supongo que tendrá mas optimizado el uso de memoria y CPU.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Error de memoria? strelok OOP 29 04-01-2018 13:53:02
Error de memoria Vlady Impresión 1 02-05-2011 07:58:08
Error de memoria nelem Varios 0 29-07-2008 08:27:47
Error de Memoria pockelsm3 Varios 5 29-04-2008 21:56:17
Problema en memoria al hacer restore en firebird garza Firebird e Interbase 0 20-09-2006 22:23:58


La franja horaria es GMT +2. Ahora son las 17:49:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi