Trick für reduzierten Speicherverbrauch

  • Ich weiß nicht, ob das auf allen vServern funktionert. Feedback wäre daher schön ;)


    Der Trick:


    • 2mal auf dem vServer einloggen.
    • In erster Shell eines davon ausführen:
      Code
      watch free -m
      Code
      while true; do date; free -m|tail -n3 ; echo ""; sleep 1;done


    • In zweiter als root Shell folgendes anstarten
      Code
      dd if=/dev/urandom bs=1M count=1024 of=/tmp/irgendwas; rm /tmp/irgendwas

      1024 benutze ich, weil ich 1024MB RAM habe. Der Wert ist zwar zu groß, aber das ist egal. Bitte den Wert entsprechend dem eigenem RAM setzen!

    • Beobachte nun die Ausgabe auf erster Shell. Erst steigt der Wert für -/+ buffers/cache an, kurz danach fällt dieser. Wenn buffers einen Wert unter 20 erreicht hat, so brecht ihr das dd mit STRC+C ab. Falls buffers auf 0 fällt, dann springt der Wert wieder auf seinen Ursprungswert zurück.


    Hier die Ausgabe der ersten Konsole bei mir:

    Code
    Mi 13. Jul 20:24:30 CEST 2011
    Mem:          1024       1024          0          0          0        340
    -/+ buffers/cache:        683        340
    Swap:         1024          0       1024
    [...]
    Mi 13. Jul 20:24:54 CEST 2011
    Mem:          1024       1024          0          0          0       1022
    -/+ buffers/cache:          1       1022
    Swap:         1024          0       1024

    Der Speicherverbrauch bleibt dann über längere Zeit so niedrig.


    Fragen/Hintergründe:



    • Stop mal, du verbrauchst demnach nur 1 MB an RAM? Jetzt ist es 30min später und der Verbrauch liegt bei ca 20MB mit einer Prozessliste wie in diesem Posting: #24. Aber bitte einfach weiterlesen.
    • Wie kommt man auf so was? Nach vServer drehen (dreht) durch! und [Sammelthread] Infos zum neuen Kernel wollte ich meinen vServer etwas optimieren und bin dabei auf diese Sache gestoßen.
    • Hat netcup davon Kenntnis? Ja. Ich habe mich mit diesem Speicherverhalten am 9.6.2011 an netcup gewandt. Hier wurde mir versichert, dass die Ausgabe von `free -m` "immer zuverlässige und richtige Werte ausliefert" (Quelle: NCTicket#2011070210001078 sowie NCTicket#2011060910002299).
    • Hier stimmt doch was nicht?! Das dachte ich auch, genau deshalb habe ich mich nochmal an den Support gewandt (daher auch 2 Ticketnummern). "also stimmt doch alles." (Quelle: Supporticket)
    • Wo funktioniert das? Der Trick funktioniert nur auf meinem netcup vServer. Es klappt weder auf realen Systemen noch unter VirtualBox / VMWare ESX / XEN.
    • Habe ich damit jetzt mehr Speicher auf meinem vServer? Das weiß ich nicht.

    "Security is like an onion - the more you dig in the more you want to cry"

  • Du hintergehst damit niemanden. Mit der Vorgehensweise wird das Verhalten nur erzwungen. Ansonsten tritt das ganze Verhalten im normalen Betrieb von ganz alleine auf.

    "Security is like an onion - the more you dig in the more you want to cry"

  • Tja, das würde einige geschilderte Probleme von manchen Usern erklären, wenn die Speicherverwaltung hier so seltsam reagiert :rolleyes:



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • buffers/cache steigt bei mir nicht, sondern sinkt nur, wenn der freie Speicher ausgeht. Breche ich unter 20 ab (größer 0) springt der Wert aber wieder zurück. Nach dem Test ist wieder alles wie zuvor.


    Scheinbar geht es nicht bei allen, eventuell kernel spezifisch?

    Code
    2.6.36.4-vs2.3.0.36.39-netcup #1 SMP Wed Mar 9 07:18:38 UTC 2011 x86_64 GNU/Linux
  • Code
    2.6.36.4-vs2.3.0.36.39-netcup #1 SMP Wed Mar 9 07:18:38 UTC 2011 x86_64 Intel(R) Xeon(R)


    liefert uname bei mir.

    "Security is like an onion - the more you dig in the more you want to cry"