Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Bases de datos > Firebird e Interbase
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 22/03/2018
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Join Date: 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!
Reply With Quote
  #2  
Old 22/03/2018
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví 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.
Reply With Quote
  #3  
Old 22/03/2018
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Join Date: 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.
Reply With Quote
  #4  
Old 22/03/2018
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Mira esta sección del fichero de configuración de firebird:
Quote:
# ----------------------------
# 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.
Reply With Quote
  #5  
Old 22/03/2018
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Join Date: 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.
Reply With Quote
  #6  
Old 22/03/2018
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Join Date: 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.
Reply With Quote
  #7  
Old 22/03/2018
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví 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:
Quote:
- 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.

Last edited by Casimiro Noteví : 22/03/2018 at 19:06.
Reply With Quote
  #8  
Old 22/03/2018
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Join Date: 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.
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
¿Error de memoria? strelok OOP 29 04/01/2018 12:53
Error de memoria Vlady Impresión 1 02/05/2011 06:58
Error de memoria nelem Varios 0 29/07/2008 07:27
Error de Memoria pockelsm3 Varios 5 29/04/2008 20:56
Problema en memoria al hacer restore en firebird garza Firebird e Interbase 0 20/09/2006 21:23


All times are GMT +2. The time now is 23:07.


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