RAM läuft immernoch voll

  • Hallo Leute,


    ich habe schon vor einiger Zeit einen Thread zu dem besagten Problem eröffnet, leider wurde mir bis heute keine Erklärung / Lösung für mein Problem geliefert. In dem älteren Thread schrieb ich, dass der RAM nur voll läuft, wenn ich rsnapshot + mysqldump (meine Backup-Lösung) nacheinander benutze. Ich habe in letzter Zeit jedoch festgestellt, dass die Behauptung nicht richtig ist. Das Problem wird bei diesen Programmen nur am schnellsten sichtbar.


    Der RAM-Cache läuft voll, sobald ich irgendwelche IO-lastigen Prozesse starte - egal ob in MySQL oder auf Dateisystemebene. Die Uhrzeit spielt dabei auch keine Rolle. So läuft der RAM z.B. auch bei der Verwendung von Tiny Tiny RSS nach ein paar Tagen voll - dabei prüft ein PHP-Script in regelmäßigen Abständen nach aktuellen News in Atom- und RSS-Feeds und speichert neue Einträge in die Datenbank.


    Nach einem Lauf meines Backup-Scripts zeigt mir free -m folgendes:
    [Blockierte Grafik: http://img508.imageshack.us/img508/1342/freem.png]


    Mir wurde zunächst gesagt, das ist ganz normal, da nun der RAM-Cache greift. Allerdings wird dieser Cache nie mehr freigegeben. Das VCP meldet mir auch die Fehlermeldung: "Seit dem letzten Start hat Ihr VServer mindestens einmal sein RAM Limit ausgeschöpft." Diese Meldung soll afaik nur auftreten, wenn der RAM wirklich mal richtig voll gelaufen ist. Des Weiteren ist mir aufgefallen, dass der Swap meines vServers nie aktiv wird.


    Das Problem habe ich übrigens auch nicht alleine, weitere Benutzer mit diesem Fehler finden sich in meinem oben verlinkten Thread.


    Hat jemand eine Erklärung/Lösung parat?


    Ich nutze übrigens den vServer 1000 mit Ubuntu 10.04 LTS 64-Bit.

  • Zitat

    Mir wurde zunächst gesagt, das ist ganz normal, da nun der RAM-Cache greift.

    Das ist korrekt. Unter »Free -/+ buffers/cache« kann man erkennen, dass von den 1024MB Speicher noch 646 zur Verfügung stehen. Dass diese aber z.B. als Cache für geöffnete Dateien dienen ist nicht schlimm; im Gegenteil: Die Wahrscheinlichkeit ist groß, dass die zwischengespeicherten Daten in Zukunft wieder gelesen werden. In Folge reagiert der Server schneller, weil die CPU dann nicht auf die Festplatte warten muss.


    Zitat

    Allerdings wird dieser Cache nie mehr freigegeben.

    Wieso sollte er auch? Wenn neue (also noch nicht im Cache liegende) Daten angefordert werden, werden solange Datenblöcke im Speicher verdrängt, bis die Daten in den Speicher passen.



    —Dominik

  • Allerdings wurde mein vServer bereits mehrfach von der virtualisierungslösung durch dieses Problem automatisch neugestartet; habe uch schon vom Support eine E-Mail bekommen, dass der RAM ausgelastet war und der Server neugestartet werden musste.


    Auch jetzt meckertd das VCP wieder, dass der RAM voll ist,wobei bei free -m in der zweiten Spalte 626MB feier RAM angezeigt werden.

  • Achtung, nicht verwechseln. Die Anzeige, und die Aussage des Supports beliefen sich darauf das die Anzeige im VCP besagt das seit dem letzten Start mindestens einmal der gesamte verfügbare RAM verwendet wurde, nicht das dies aktuell (live) der Fall ist.

  • a) Ich kann diese Warnung im SCP ohne Probleme sofort nachstellen (diese erscheint sofort, wenn Cache den RAM frisst)
    b) Der Server wurde bei 600MB Cache (in der zweiten Zeile von free -m also rund 600MB "free") schon diverse male neugestartet, weil der RAM angeblich dauerhaft ausgelastet war.


    Ich habe nichts dagegen, wenn das System so viel cached, aber wenn der Server dadurch träge reagiert, das SCP rumjammert und der Server neugestartet wird, ist das nicht akzeptabel.
    Zumal ich in dem oben verlinkten Thread bereits beschrieben habe, dass dieses Verhalten auf einmal auftrat, ohne irgendwelche Änderungen am System zu machen, sehr wohl aber kurz nach einem Kernel-Update eurerseits. Auch eine Neuinstallation + 3 verschiedene Betriebssysteme halfen nichts - der Fehler kommt immer sofort wieder.