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
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.
August 9th, 2007 at 1:06 pm
Wie wärs noch wenn wenn du auch X killst? Das frisst auch RAM. :P
August 10th, 2007 at 7:45 pm
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.
August 13th, 2007 at 6:45 am
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.