Announcement

Collapse
No announcement yet.

Suse-Linux, IB 6.0.1.6 (classic), cannot attach password database

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Suse-Linux, IB 6.0.1.6 (classic), cannot attach password database

    Hallo #,<p>
    Obige Meldung kam heute bei einem Kunden. ;(<br>
    Einige Clients waren schon angemeldet, bei den anderen diese Meldung.<br>
    470 MB Speicherauslastung bei 8 Clients (512 MB hat er drin).<br>
    Wer den Speicher benutzt, konnten wir nicht rausfinden ("ps -ax", "top", "free" haben IBSERVER ohne Speicher angezeigt oder gar nicht im Falle von "top").<br>
    Ich habe das nur am Telefon verfolgen können und von Linux nicht so die Ahnung.<p>
    Nach einem Neustart waren 15 Clients drin nd noch 280 MB frei.

    <p>
    Ein Ausschnitt aus der Statistik NACH dem Neustart:
    <pre>
    Oldest transaction 574673
    Oldest active 584850
    Oldest snapshot 584850
    Next transaction 584851
    Bumped transaction 1

    Sweep interval: 20000

    </pre>
    <p>
    Zugriff erfolgt über Bde mit teilweise expliziten Transaktionen (Data,StartTransaction, Commit usw.)
    <br>
    4 Rechner sind permanent connected, die anderen nur ab und zu.
    <p>
    Das ganze System lief ohne Problem einen ganzen Monat durch.<br>
    Habe ich hier ein Problem mit einer offenen Transaktion ?. Was ist denn dieses "bumped transaction" ?.<p>
    Mit dem Abmelden aller Nutzer war das Problem nicht behoben, erst mit Neustart des Rechners.<p>
    Unter Windows hatte ich damit noch nie Probleme .
    <p>
    Kann jemand helfen.<br>
    TiA<br>
    Heiko

  • #2
    Hallo Heiko,
    <br><br>
    wenn ich durch meine Glaskugel durchsehe (*g*), kann es sein, dass Du vorher immer SuperServer verwendet hast (z.B. unter Windows), in der Produktionsumgebung jetzt aber Classic und Du einfach die DB dort eingespielt hast? Wenn ja, dann kommt jetzt die Preisfrage, nämlich wie hoch sind die "Page Buffers" für diese Datenbanken eingestellt? Sind noch andere Datenbank, die auf diesem Server laufen? Wenn ja, wie hoch sind die Page Buffers aller Datenbanken am Server?
    <br><br>
    Diesen Wert bekommst Du auch mit <b>gstat -h</b> heraus.
    <br><br>
    Schöne Grüße,
    <br>
    Thoma
    Thomas Steinmaurer

    Firebird Foundation Committee Member
    Upscene Productions - Database Tools for Developers
    Mein Blog

    Comment


    • #3
      Hallo Thomas,<br>
      ich hätte auch gern so ne Glaskugel, die alles weiss. <br>
      Buffers waren auf 10000 (weil das bei Superserver halt so bei mir ist). Jetzt habe ich die Buffers per gfix erst mal auf 4000 setzen lassen. <br> Du hast bestimmt im Kopf, dass jede geöffnete Datenbank einen eigenen Buffer hat.<p>
      Es läuft dort aber nur meine Datenbank alleine.
      <p>
      Was mich wundert ist, dass schon beim Start des Rechners (Reboot) 2-3 IBServer-Prozesse laufen).
      <p>
      Heik

      Comment


      • #4
        Hallo Heiko,
        <br><br>
        ok, meine Glaskugel funktioniert (noch). ;-)
        <br><br>
        Überflieg einfach einmal diesen Artikel, damit Du ein bißchen über die Unterschiede von SuperServer vs. Classic bescheid weißt. http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_ss_vs_classic
        <br><br>
        Warum meine Frage zu den Page Buffers? Naja, <b>Page Buffers * Page Size</b> ergeben den maximal zu verwendenden Hauptspeicher für das Caching <b>pro</b> Datenbank in der <b>SuperServer</b> Architektur.
        <br><br>
        Beispiel: SuperServer, Page Size = 4K, Page Buffers = 10000: max. 40 MB Hauptspeicher für das Caching für diese Datenbank. Wenn Du eine zweite Datenbank mit diesen Werten hast, dann kommt auf die 40 MB mit dieser Formel mehr dazu usw ...
        <br><br>
        Unter Classic sieht das Ganze nämlich etwas anders. Hier lautet die Formel pro Datenbank <b>Page Buffers * Page Size * Anzahl der Datebankverbindungen</b>.
        <br><br>
        Beispiel: Classic, Page Size = 4K, Page Buffers = 10000: bei einer Verbindung zur DB max. 40 MB, bei 2 VErbindungen max. 80 MB, usw ... Nochmals: pro Datenbank. Muss der Classic Server mehrere DBs verwalten dann erreicht man relativ rasch mal die Hauptspeichergrenzen und das Betriebssystem muss dann auf die langsame Festplatte auslagern. Mit einem zu hohen Page Buffers kann man sich auch ordentlich ins Knie schießen. Darum liegt bei Classic auch der Vorgabewert für Page Buffers bei 75(!) pro Datenbank. Bei SuperServer ist das 2048(!). Diese Defaultwerte sind serverweit definiert und treten dann in Kraft, wenn Page Buffers auf Datenbankebene auf 0 gesetzt ist.
        <br><br>
        Wegen den mehreren IBServer-Prozessen. So funktioniert mal Classic, dass für jede Verbindung ein eigener Prozess gestartet wird.
        <br><br>
        Mit den hier erwähnten Dingen ist leicht zu sehen, dass Classic viel mehr Ressourcen benötigt, als SuperServer. Daher wurde diese Architektur auch durch den SuperServer "ersetzt". Beide Architekturen haben Vor- und Nachteile. Ob diese für jemanden relevant sind, hängt immer vom Projekt und der eingesetzten Hardware ab (Stichwort: SMP-Maschinen).
        <br><br>
        Schöne Grüße,
        <br>
        Thoma
        Thomas Steinmaurer

        Firebird Foundation Committee Member
        Upscene Productions - Database Tools for Developers
        Mein Blog

        Comment

        Working...
        X