Speicherverbrauch reduzieren (monoton+minimal ;)

-----

Im Moment mach ich ja mal endlich etwas Java, im Ausgleich dazu habe ich mich heute Nacht einer mir etwas angenehmeren Aufgabe gewidmet und versucht den Speicherverbrauch genauergesagt die RAM-in-beschlagnahme auf meinem Hauptrechner weiter zu reduzieren. Erstmal habe ich, wie schon lange geplant agetty rausgeschmissen und durch fgetty ersetzt, bzw umgekehrt. Also erst fgetty rein, dann agetty raus, so. Damits nicht zu mißverständnissen kommt ;)
Also dafür, dass ich keine Funktion vermisse lohnt sich das echt schonmal. Hier mal der vorher-nachher vergleich nur mit ps:

VSZ RSS TTY COMMAND
1640 708 tty2 /sbin/agetty
1636 704 tty3 /sbin/agetty


VSZ RSS TTY COMMAND
108 32 tty2 /sbin/fgetty
108 28 tty3 /sbin/fgetty

Die Virtual set size (VSZ) ist von über 1,6kb auf nur 100byte geschrumpft und die wichtigere resident set size (RSS) ist von 700byte auf 28 byte geschrumpft. das ist doch schonmal was. Die VSZ zeigt den Gesamtspeicherverbrauch von RAM+Swap+stack usw. an, der RSS Wert nur den RAM-Verbrauch.
Um fgetty zu installieren braucht man zunächst die dietlibc und libowfat. Die meisten Distributionen müssten die in ihrem package management beinhalten. Sind die libs installiert saugt man die fgetty sources, macht „make&&make install“ und öffnet mit einem Editor die /etc/inittab und ändert die section #TERMINALS um.

# TERMINALS
c1:12345:respawn:/sbin/fgetty tty1 "--noclear"
c2:2345:respawn:/sbin/fgetty tty2 "--noclear"
c3:2345:respawn:/sbin/fgetty tty3 "--noclear"

Hinweis: Möchte man auf den anderen tty auch einen loginscreen haben, kann man die section natürlich beliebig erweitern. Das wars, neu booten und freuen.

Dagegen noch wichtiger war es aber mal sich ordentlich Gedanken über den richtigen Terminal-emulator zu machen. Eigentlich war ich mit xterm immer ganz gut bedient, bin aber jetzt auf aterm umgestiegen.

%MEM VSZ RSS TTY COMMAND
0.5 9436 4436 ? Ss 07:39 0:00 xterm


%MEM VSZ RSS TTY COMMAND
0.2 3960 2072 ? Ss 07:32 0:00 aterm

Anhand der PID(die ich hier weggelassen hab) kann man sich den tatsächlichen RAM Verbrauch anzeigen lassen, „ps“ zeigt anders als die meisten glauben nur an, was das besagte Programm verbrauchen würde, wenn es das einzigste offene Programm systemweit wäre was auf die benötigten librarys, Module usw. zugreift. Für diesen Zweck gibt es das tool „pmap“, welches genauere Ausgaben gibt. Zu genau um sie hier zu besprechen.
xterm: mapped: 9172K writeable/private: 1680K shared: 28K

aterm: mapped: 3964K writeable/private: 648K shared: 28K
Und für den Vergleich extra dazukompiliert:
gnome-terminal: 37868K writeable/private: 6608K shared: 704K :D
Wichtig ist der Wert „writeable/private“, er gibt an was diese PID wirklich explizit an neuen libs usw laden muss.
Leider konnte ich nicht genau herausfinden, wie man den genauen Speicherzuwachs pro neuer Instanz, bzw PID bestimmen kann.
Bei der Ausgabe von „pmap -d “ erscheinen teils dieselben Adressen, teils neue. Theoretisch müssten die Adressen, die jeweils neu zur Ausgabe hinzukommen zusammengerechnet den zusätzlichen RAM Verbrauch ergeben. Deckt sich auch grob mit einem Überschlag mittels free. Aber so richtig hinkommen tut das trotzdem alles nicht, scheint irgendwie nicht proportional zu den offenen Instanzen zu verlaufen. Ich hab da jetzt stundenlang rumgerechnet und gezählt, fall da irgendwer genaues drüber weiß, es gibt da so ne commentfunktion.
Ist auch erstmal egal, aterm frisst jedenfalls weniger als xterm, soviel ist ganz sicher.

Das wars erstmal, die init muss bei Zeiten noch durch die minit ersetzt werden, aber abgesehen davon gibt es noch genügend andere Störfaktoren. Es ist zwar eigtl nicht so, dass der RAM knapp ist (Im Sinne von WIRKLICH knapp), aber irgendwie wurmts mich, wenns da unnötig viel Sachen gibt. Die einzigsten Fälle, wo ich schwach bin ist der Firefox und Thunderbird. Wobei die beiden Dinge eigentlich am schnellsten runterfliegen müssten, nur wegen den zwei Sachen müssen tausende von schrecklichen gtk und gnome libs mit diesem fiesen Menu installiert sein. Aber vorher muss ich mich mal wieder an das blöde Java ranmachen.

Similar entry's:

Nvidia S-Video rgb über Cinch |Birth Howto: Wie man eine Spontangeburt durchführt |Stilechter DIY Weihnachtsbaumständer (Shice kaqboons. – part II) |Howto: Remove fruity bugs |Das Internet werbefrei machen

3 Responses to “Speicherverbrauch reduzieren (monoton+minimal ;)”

  1. rumpel Says:

    Wie wärs noch wenn wenn du auch X killst? Das frisst auch RAM. :P

  2. Nosports Says:

    Allerdings. Aber es gibt so einige Dinge, auf die möchte man einfach nicht verzichten. Wobei der Browser w3m eigtl auch klar geht.
    Wenn mal keiner css, javascript, flash usw. für websites benutzen würde, währe das ne coole Sache. Aber wem soll ich Vorwürfe machen, ich hab ja auch css in Gebrauch. Aber wenigst ists per non-css-browser einigermaßen ansehlich. Wenn ich mal Langeweile hab nehm ich das css glaube ich eh mal raus und pass das son bisschen an.

  3. rumpel Says:

    Man muss ja jetzt nicht der Schönheit die Hände abhacken nur weil es der schnellere Weg zum Schonen des Speichers wäre.
    Die Gecko-Engine ist nun mal dick & rund.
    Aber mal schauen was Dillo in nächster Zeit alles bringt.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>