Virtueller Speicher wird knapp

Hinweis: In dem Thema Virtueller Speicher wird knapp gibt es 16 Antworten auf 2 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
  • Hallo!


    Ich habe ein Suse Linux 42.3 als Samba- und MariaDB-Server. Bei diesem wird der virtuelle Speicher jeden Tag etwas kleiner und ist inzwischen auf rund 90%. Der RAM-Speicher bleibt bei rund 38%. Was passiert, wenn der virtuelle Speicher voll ist?


    Für den Inhalt des Beitrages 129765 haftet ausdrücklich der jeweilige Autor: Flori

  • Zuerst würde ich den PC neu Kalt starten und dann Deine Abfrage erneut anstellen.


    Es hört sich so an, als ob hier ein Cache angezeigt wird, welcher Dynamisch verwaltet wird. Also nicht Größer als notwendig.



    Ahoi von hier aus.

  • Das hilft genau gar nix.
    Damit wird ja der gesamte Speicher komplett neu belegt.
    Nach einem Kaltstart kann man also erst einmal garantiert nichts feststellen.


    Erst mal gucken, was da Speicher frisst.
    Das kann der Befehl ps --sort -rss -eo pid,pmem,rss,vsz,comm | head -16
    ps ich hätte gerne den ProcessStatus
    --sort -rss sortiert nach dem RSS Feld (ResidentSetSize)
    -eo für j-edem Prozess mit dem output der Felder
    pid ProcessID
    pmem Prozent MEMory
    vsz VirtualSiZE
    comm und den Namen des COMMandos
    | dessen Ausgabe gibst du bitte weiter an den Befehl
    head
    -16 der nur die ersten 16 Zeilen davon ausgeben soll


    Wenn du zugucken willst, bastelst du einfach ein watch drumrum:
    watch "ps --sort -rss -eo pid,pmem,rss,vsz,comm | head -16" (Beenden mit Strg+c)


    Was bringt dich dazu, zu glauben, Samba oder MariaDB würden das verursachen?
    Das kann alles mögliche sein.


    Wenn der virtuelle Speicher voll ist, wird das System langsamer, bis es fast erstickt.
    Seit alters her bleibt für root für solche Notfälle immer noch ein wenig Speicher frei, damit man noch eingreifen kann.
    Da geht dann aber nicht mehr wirklich viel. Da muss man seine Konsolenbefehle wirklich souverän beherrschen.


    Wobei der Begriff "virtueller Speicher" in diesem Kontext erst einmal sauber definiert werden müsste.
    Da gäbe es viel zu beachten und debattieren, bevor man korrekte Aussagen treffen kann.

  • Jetzt musste ich mir auch noch dein erstes Bild richtig durchlesen.
    (Bilder mögen wir hier eher nicht. Poste es bitte als Text in Code- Tags ( der Button </> im Forums-Post-Editor. Dann kann man das einfach durchsuchen, kopieren...)


    Hübsche Kiste.
    Als radikal windowsfreie Zone und noch radikalerer open source Aktivist, muss ich erst mal gegen Teamviewewr maulen. Der teamviewerd läuft immer. Und immer polluiert das Ding irgendwelche Daten halt zu dieser Firma.
    (Ich weiß, es ist sinnlos dagegen zu reden; ich verzichte darauf dennoch nicht.)


    Zur Sache:


    Ein paar Dinge weiß ich nicht:

    • Was bezeichnet Webmin als "Virtuellen Speicher"?
      (Ich setze höchstens Cockpit für graphische Administration von Servern ein; eigentlich immer nur die Konsole)
    • Was treibt MariaDB? Welche DBs sind dort am Start?
      Also, wieviele DBs existieren dort und ist der Wert von ca. 1.2GB plausibel?
      Das sollten also viele oder größere DBs sein.
    • Wieviele Clients halten Sambashares offen für wie lange, und werden da eher große oder eher kleine Dateien verschoben?
      Mit "große" meine ich Videos, mit "kleine" Dokumente, Scripte etc
    • Aus dem ps Listing geht nicht hervor, welche anderen Programme da noch am Start sind, die auch als Verursacher in Frage kommen.

    Damit wissen wir alle noch nicht, welches Programm tatsächlich für den ständigen Zuwachs verantwortlich ist, und auch nicht, ob das überhaupt ein einziges Programm tut, oder mehrere dafür in Frage kommen.


    Ich würde deshalb das obige Kommando perodisch in einer Schleife laufen lassen und den ganzen Krempel hinterher analysieren lassen.
    Das lässt sich leicht mit awk erledigen.
    Da die Kiste doch sehr potent ist, würde ich obigen Befehl in einer Shellfunction alle paar Sekunden aufrufen und den Krempel in eine Datei schreiben.
    Die kann man nach ein paar Tagen dann analysieren und weiß dann damit, was Sache ist.


    Da ich ein solches Tool eh schon mal schreiben wollte, habe ich kurzerhand ein Scriptchen gebastelt, das das erledigt.
    Das ist zwar noch nicht fertig, um auch schon analysieren zu können, aber es tut schon mal.


    Wenn du magst, kannst du es lauffähig von Sauernlands und meinem Webserver runterladen.
    Auf dem Server startest du das dann am einfachsten in einer screen Session, damit es unabhänig davon, ob du eingeloggt bist, oder nicht, einfach weiter laufen kann. (Ich werde das später so machen, dass man es auch detached im Hintergrund laufen lassen kann.
    Die awk Auswertung bastel ich dann inzwischen, und du kannst die dann nächstens ebenfalls runterladen.

  • Hi,
    erstmal vielen Dank für deine Antwort. Zu deinen Fragen:


    Der virtuelle Speicher von Webmin ist identisch mit dem "Used Swap Memory" von KSysGuard oder den Swap-Angaben von top.


    In MariaDB sind 44 DB aktiv mit je 2 bis 20 Tabellen mit Tabellengrößen von durchschnittlich etwa 2-4 MB, also recht klein.
    Es sind ca. 200 SQL-Prozesse (Connections) vorhanden, die mit Bürozeiten beginnen und enden.


    Aktive Samba-Clients gibt es rund 60. Während der Bürozeiten.
    Es werden Dateien im KB bis wenigen MB gelesen/geschrieben.


    Gestern habe ich die Swapiness auf 60 auf 10 runtergesetzt. Seit dem ist die virtuelle Speicherauslastung bei 90% stehen geblieben. Die RAM-Auslastung ist bei 40%. Eigentlich war ich immer der Meinung, dass der Swap-Speicher als Notfall für den RAM-Speicher dient, nicht umgekehrt :-).


    Gestern habe ich vmstat eine Zeit lang laufen lassen, unter SI/SO hin und wieder mal zwei/drei Byte, sonst 0.


    Dein Script muss ich mal laufen lassen.

    Für den Inhalt des Beitrages 129803 haftet ausdrücklich der jeweilige Autor: Flori

  • Neee, Linux versucht möglichst effizient das RAM zu nutzen.
    Dazu vergrößert es die I/O Puffer auf notfalls sehr, sehr groß.
    Werden irgendwelche Speicherseiten nur sehr selten benötigt, so kann es durchaus sein, dass die ausgelagert werden, und dafür die Puffer vergrößert werden.
    Deine Swapiness Einstellung spielt genau da rein.


    Sonderlich Gedanken musst du dir hier jedenfalls nicht machen.
    Ich werde das memalyze Dingens ein wenig ausbauen, so dass für jeden Prozess auch die ganzen Pages mitgezählt werden.
    Dauert aber ein wenig.
    Heute sollte aber schon eine Version fertig werden, die wesentlich besser rödelt und wesentlich wenige Plattenplatz beansprucht.
    Ist vielleicht besser, du wartest auf das Update.
    (werde das hier reinschreiben)

  • Moin zusammen,


    bei einem Server ist eine Swappiness von 60 sowieso Unfug.
    Sie sollte je nachdem für was der Server dient, wie stark/schwach er auf der RAM/CPU Brust ist und wie belastet er ist zwischen 10 und maximal 40 irgendwo liegen.


    Flori nu aber kommt das dicke ABER:
    Hast Du Deinen Datenbank Server auch dafür optimiert, eine hochfrequentierte Datenbank zu tragen? Stichwort Huge Pages, Platten I/O (u.A. /sys/block/<Plattenbezeichnung>/queue/scheduler - wenn da noch was anderes als deadline drinsteht, setzen neu machen *gg*), Blockdev, die ganzen sysctl Einträge, ulimit für die DB etc. p.p.


    Merke: Eine Datenbank will ALLES wenn sie es bekommen kann. Es ist am Admin hier 1. Beschränkungen zu legen und 2. die Kiste auf Datenbankservice zu optimieren. Von alleine geht das nicht. Linux ist in der Standard Installation balanced (was in den meisten Fällen auch gut so ist). Datenbank ist aber definitiv kein Fall für balanced. Je nach Auslastung dieser hat man dann meistens sehr schnell keinen Spass mehr, weder im System noch in der Datenbank.
    Auch die Datenbank Config File(s) muss auch noch angepasst werden um performant zu laufen ... insbesondere HugePages auch zu nutzen. Bei mariaDB/mysql: /etc/my.cnf


    Vom Sambarotz red ich mal gar nicht (ja ich mag Samba kein bisschen, überhaupt gar nicht.)

    Viele Grüße,
    T.

    Für den Inhalt des Beitrages 129809 haftet ausdrücklich der jeweilige Autor: Tamerlain

  • Nu ja. Das ist eine ziemlich potente Xeon Kiste.
    Die wird mit den paar DBs locker fertig, wie ich meine.
    Jedenfalls wenn die Apps, die da zugreifen, halbwegs sauber arbeiten.

  • Moin zusammen,


    potent oder nicht, wenn der Server nicht sauber auf DB Betrieb aufgesetzt ist, kann die noch so potent sein, Maria krallt sich trotzdem alles was geht - und das kann schlimmstenfalls tatsächlich alles sein.
    Und da sind ja wie Du schon richtigerweise sagtest noch die zugreifenden Anwendungen - von denen man nicht mit letzter Sicherheit sagen kann ob die sauber programmiert sind - meistens sind sie es nämlich leider nicht, sondern es handelt sich um Bananensoftware.

    Viele Grüße,
    T.

    Für den Inhalt des Beitrages 129820 haftet ausdrücklich der jeweilige Autor: Tamerlain