AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Interbase 6: IBServer.exe gibt RAM nicht frei
Thema durchsuchen
Ansicht
Themen-Optionen

Interbase 6: IBServer.exe gibt RAM nicht frei

Ein Thema von squetk · begonnen am 21. Mär 2008 · letzter Beitrag vom 22. Mär 2008
Antwort Antwort
squetk

Registriert seit: 29. Aug 2004
Ort: Cottbus
118 Beiträge
 
Delphi XE2 Professional
 
#1

Interbase 6: IBServer.exe gibt RAM nicht frei

  Alt 21. Mär 2008, 11:46
Datenbank: Interbase • Version: 6.02 • Zugriff über: IBX
Hallo,

bevor entsprechende Hinweise kommen: ja, wir haben selbstverständlich vor, in Kürze auf eine aktuelle Firebird-Version umzusteigen...

Unser Programm ist bei mehreren Kunden seit mehreren Jahren im Einsatz. Bei einem Kunden gibt es das Phänomen, dass der Speicherbedarf der IBServer.exe (Superserver-Installation, ca. 25 Connections, DB ist ca. 2.5 GB gross) auf dem Server (Windows 2003 2 GB RAM) im Tagesverlauf exorbitant in die Höhe schnellt. Das kann mitunter bis zu 2 GB betragen. Leider verabschiedet sich der IBServer dann mit der Fehlermeldung "..invalid save point...", was bedeutet, dass der Speicher zu knapp ist.
Wenn sich alle Clients am Abend abmelden, wird der belegte Speicher (im Taskmanager des Servers zu erkennen), nicht an das Betriebssystem zurückgegeben.
Erst wenn der Interbase-Server gestoppt und wieder gestartet wird, ist der Speicher wieder frei.

Ausser unserer Anwendung greifen noch Fremdanwendungen per ODBC auf die Datenbank zu (was bei den anderen Kunden nicht der Fall ist).

Meine erste Frage ist: Gibt es eine Möglichkeit, dieses Verhalten per Monitoring zu ermitteln, um dem auslösenden Programm auf die Schliche zu kommen?

Ebenfalls von Interesse ist, wie man Interbase zum Speicherfresser machen kann. Langlaufende Transaktionen (wie nach Google-Suche zu diesem Thema gelesen) können es eigentlich nicht sein, da tagsüber eher viele kurze Transaktionen stattfinden.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Interbase 6: IBServer.exe gibt RAM nicht frei

  Alt 21. Mär 2008, 12:08
Hallo,

> Ausser unserer Anwendung greifen noch Fremdanwendungen per ODBC auf die Datenbank zu (was bei den >
> anderen Kunden nicht der Fall ist).>

Nun, wie kannst du ausschliessen, die die nicht lang laufende Transaktionen erzeugen ?

Sage dem Kunden doch mal, er soll die anderen Apps mal alle schliessen
und dann dem Ram-Verbrauch messen.

Ein Tool, was ich kenne ist der FBScanner (ibphoenix.com),
es gibt auch eine Testversion davon.

Das andere wäre der ibmonitor.

Heiko
Heiko
  Mit Zitat antworten Zitat
squetk

Registriert seit: 29. Aug 2004
Ort: Cottbus
118 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Interbase 6: IBServer.exe gibt RAM nicht frei

  Alt 21. Mär 2008, 12:21
Ich habe mal eine lang laufende Transaktion getestet - selbst wenn sie über Stunden läuft und innerhalb dieser mehr als 150000 SQL-Abfragen stellt, steigt der Speicherbedarf des IBServers kaum oder nur minimal.

FBScanner: schaut ganz gut aus, werde ich mal probieren.

Man kann - wenn alle Programme geschlossen werden - keine Freigabe des Speichers durch IBServer.exe erkennen.

Die Anzahl der bestehenden Connections ist normal - ich erwähne dies, weil ähnliche Probleme auftreten, wenn sehr viele Datenbankconnections geöffnet und nicht geschlossen werden.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Interbase 6: IBServer.exe gibt RAM nicht frei

  Alt 21. Mär 2008, 13:15
Hallo,

das Problem ist nicht die langlaufende Transaktion selber,
sondern die anderen Transaktionen.

Transe_Lang
StartTransaction
Update ohne Commit


Transe_kurz 1
StartTransaction
Transaktionsmaske enthält auch Transe_Lang


Transe_kurz 2
StartTransaction
Transaktionsmaske enthält auch Transe_kurz1 und 2


IB muss immer mehr Speicher anfordern bei jeder neuen Transaktion


Heiko
Heiko
  Mit Zitat antworten Zitat
luka

Registriert seit: 10. Aug 2006
Ort: Cottbus
33 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Interbase 6: IBServer.exe gibt RAM nicht frei

  Alt 21. Mär 2008, 14:23
Steige doch so schnell wie nur irgend möglich auf Firebird um.

So lange könnte man einfach versuchen den Firebird Server zu benutzen.
Der sollte doch mit InterBase-Datenbanken klar kommen.

Gruß luka
  Mit Zitat antworten Zitat
squetk

Registriert seit: 29. Aug 2004
Ort: Cottbus
118 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Interbase 6: IBServer.exe gibt RAM nicht frei

  Alt 21. Mär 2008, 15:19
Zitat von luka:
Steige doch so schnell wie nur irgend möglich auf Firebird um.
Danke luka, auf diesen Tipp habe ich gewartet..

Aber noch ist ja nicht sicher, ob mich das Szenario mit Firebird nicht ebenso heimsuchen kann.

Ich müsste diesen Interbase-Speicherhunger auch im Test hinkriegen können, so dass ich 1.) die Ursache ermitteln kann und 2.) prüfen kann, ob mir - wenn es keine andere Lösung gäbe - Firebird da weiterhelfen könnte.

Dazu werde ich mal ein Testprogramm stricken, das - wie hoika schrieb - eine lang laufende Transaktion mit parallelen kurzen Transaktionen simuliert.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Interbase 6: IBServer.exe gibt RAM nicht frei

  Alt 22. Mär 2008, 16:05
Hallo,

was ich vergessen habe,

die lange Transaktion und die anderen müssen
verschiedene Connections (z.B. Rechner) sein.


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz