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.
  • Hi Ihr!


    Der virtuelle Speicher ist seit ein paar Tagen bei 90 % stehen geblieben. Wenn's so bleibt, soll's mir Recht sein. Der RAM-"Verbrauch" liegt bei 37%.


    Tamerlain: Genau, da steht deadline drin. Verrate mir bitte doch mal ein paar Einstellungen. Gerne per Link.


    Viele Grüße

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

  • Moin zusammen,


    Flori schau Dir mal mysqltuner und mysqlcheck an. Das liefert schon sehr gute Optimierungsaussagen für die Datenbank selbst. Mysqlcheck mit der Option optimize bitte erst an einer geclonten Testdatenbank testen und schauen ob hernach alles sauber tut - der furhrwerkt Dir nämlich aktiv in den Datenbanken rum.


    Dann schau Dir mal den Read-Ahead-Cache in Deinem Linux an. Der Default Wert ist für ein Linux was eine DB tragen muss lächerlich klein und sollte erhöht werden.


    Auch die sysctl sollte angepasst werden auf das Tragen einer Datenbank. Dies gilt insbesondere, wenn in der Datenbank Config Huge_Pages eingestellt ist.
    Dann sind folgende Werte zu prüfen und anhand der Serverstärke (CPU, RAM) einzustellen:

    Code
    net.core.wmem_default, net.core.wmem_max, net.core.rmem_default, net.core.rmem_max, net.core.netdev_max_backlog (ist interessant, wenn das System unter Last läuft), vm.nr_hugepages, vm.swappiness (ich arbeite bei meinen Kisten gerne mit Werten um die 20 +/-), vm.dirty_ratio, vm.dirty_background_ratio, vm.dirty_expire_centisecs, vm.dirty_writeback_centisecs, (sehr wichtig für DB): kernel.shmmax, kernel.shmall


    ausserdem im systemd, genauer gesagt /etc/systemd/system/ einen Unterordner für die mariadb erstellen (z.B. mariadb.service.d) und dort eine .conf Datei hinterlegen, die sich mit den Limits der Mariadb beschäftigt (wird bei HugePages Verwendung zwingend gebraucht).
    Dort müssen die Werte LimitNOFILE und LimitNPROC angepasst werden, sowie LimitMEMLOCK auf infinity gesetzt werden.


    Danach ist der systemd neu einzulesen damit die Änderungen aktiv werden.



    Ein Linux für DB zu tunen/optimieren und auch die DB selbst zu optimieren ist nicht so einfach wie es aussieht, lohnt sich aber allemal.
    Oft muss man sich anhand guter Ausgangswerte je nach Anforderungslage noch rantasten bis das Optimum erreicht ist.

    Viele Grüße,
    T.

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

  • Moin zusammen,


    auch für Postgres muss das System konfiguriert/optimiert werden.


    Desweiteren IST mariaDB eine echte DB und hat genauso ihre Berechtigung wie PostGres.

    Viele Grüße,
    T.

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

  • Nee. Man kann, muss abba nich.
    Das war früher mal.
    Auf ne ext4 Partition, und gut is.
    Ich rede jetzt hier von einem DB Server, der bis zum drei- bis vierfachen an DBs und Bruttodaten hat.


    Wenn es um richtig große DBs geht, sieht die Welt anders aus.
    Aber dann hat man eh irgendein Ceph oder dergleichen am Start.


    Und solche Peinlichkeiten, wie mySql hat, gibt es einfach nicht.

  • Moin zusammen,


    wenn ich ne richtige DB will, nehm ich ne RAC oder DB2 im online-online Cluster mit nem vernünftigen SVC und SAN FlashCopy dahinter *Klugscheisser Modus Off*


    Aber da wir hier um kleine Dinge reden für die die oben Genannten vollkommen oversized und auch bei Weitem zu teuer sind, ist mariaDB vollkommen ausreichend und auch gut skalierbar.
    Mit nem angepassten OS bzw. fs alles kein Hexenwerk - und ja das gilt auch für Postgres!


    Und selbst für RAC und DB2 muss man das OS anpassen damit alles vernünftig läuft.


    Ext4 ist zwar ein gutes FS, aber es ist weder magisch noch macht es alles von selber.

    Viele Grüße,
    T.

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