- Registriert
- 15. Mai 2008
- Beiträge
- 21.900
- Reaktionspunkte
- 14
- Punkte
- 0
Wir sind erstmal mit dem Telnet auf der Linux-Kommandozeile und schauen uns die Memory-Belegung mit free an:
Wenn uns nur die Zeile 2 und dort die Werte für used, free, shared und buffers interessieren, dann können wir das free-Kommando mit einer Pipe an das awk-Kommando weiterleiten, welches uns komfortabel auf einzelne Zeilen und Werte in einer Zeile zugreifen lässt. Die Zeilennummer heißt NR, die Spalten $3,$4,$5,$6, also zusammen:
Wir könnten auch die Zeile mit einem eindeutigen Suchbegriff herausfiltern:
Wenn wir die prozentualen Anteile erhalten möchten, dann ginge das so:
Noch Kommas zwischen die Zahlen:
Nun wollen wir das graphisch darstellen und benutzen dazu das Google-Chart-API. Ein einfaches Kreisdiagramm geht so (im Browser eingegeben):
http://chart.apis.google.com/chart?cht=p&chs=250x200&chd=t:10,20,5,15&chl=A|B|C|D&chtt=Test
http://chart.apis.google.com/chart?cht=p&chs=250x200&chd=t:10,20,5,15&chl=A|B|C|D&chtt=Test
Nun packen wir das in eine CGI-Datei namens free.cgi ins Verzeichnis /usr/syno/synoman/phpsrc/free/ und müssen nun die &-Zeichen gegen HTML-Entities & austauschen:
Jetzt noch chmod 755 free.cgi und einmal testen mit: https://DS_name:5001/phpsrc/free/free.cgi
Jetzt ersetzen wir die Werte 10,20,5,15 gegen die Werte aus dem free | awk ... und machen die Legende passend:
und rufen jetzt das ganze noch mal auf https://DS_name:5001/phpsrc/free/free.cgi und haben ab jetzt eine schöne graphische Anzeige unserer Memory-Belegung. Wer mag, kanns nun noch als 3rd-party-Application integrieren.
Rich (BBCode):
free
total used free shared buffers
Mem: 126904 119860 7044 0 20528
Swap: 522040 7732 514308
Total: 648944 127592 521352
Wenn uns nur die Zeile 2 und dort die Werte für used, free, shared und buffers interessieren, dann können wir das free-Kommando mit einer Pipe an das awk-Kommando weiterleiten, welches uns komfortabel auf einzelne Zeilen und Werte in einer Zeile zugreifen lässt. Die Zeilennummer heißt NR, die Spalten $3,$4,$5,$6, also zusammen:
Rich (BBCode):
free | awk 'NR==2 {print $3,$4,$5,$6}'
119916 6988 0 20608
Wir könnten auch die Zeile mit einem eindeutigen Suchbegriff herausfiltern:
Rich (BBCode):
free | awk '/Mem/ {print $3,$4,$5,$6}'
119916 6988 0 20608
Wenn wir die prozentualen Anteile erhalten möchten, dann ginge das so:
Rich (BBCode):
free | awk '/Mem/ {print $3/$2*100,$4/$2*100,$5/$2*100,$6/$2*100}'
94.4935 5.50652 0 16.2517
Noch Kommas zwischen die Zahlen:
Rich (BBCode):
free | awk '/Mem/ {print $3/$2*100 "," $4/$2*100 "," $5/$2*100 "," $6/$2*100}'
94.4935,5.50652,0,16.2517
Nun wollen wir das graphisch darstellen und benutzen dazu das Google-Chart-API. Ein einfaches Kreisdiagramm geht so (im Browser eingegeben):
http://chart.apis.google.com/chart?cht=p&chs=250x200&chd=t:10,20,5,15&chl=A|B|C|D&chtt=Test
http://chart.apis.google.com/chart?cht=p&chs=250x200&chd=t:10,20,5,15&chl=A|B|C|D&chtt=Test
Nun packen wir das in eine CGI-Datei namens free.cgi ins Verzeichnis /usr/syno/synoman/phpsrc/free/ und müssen nun die &-Zeichen gegen HTML-Entities & austauschen:
Rich (BBCode):
#!/bin/ash
cat <<EOT
Content-type: text/html
<html><head><title>System-Info</title></head><body>
<img src="http://chart.apis.google.com/chart?cht=p&
chs=250x200&chd=t:10,20,5,15&chl=A|B|C|D&chtt=Test">
</div></body></html>
EOT
Jetzt noch chmod 755 free.cgi und einmal testen mit: https://DS_name:5001/phpsrc/free/free.cgi
Jetzt ersetzen wir die Werte 10,20,5,15 gegen die Werte aus dem free | awk ... und machen die Legende passend:
Rich (BBCode):
#!/bin/ash
cat <<EOT
Content-type: text/html
<html><head><title>System-Info</title></head><body>
<img src="http://chart.apis.google.com/chart?cht=p&chs=250x200&chd=t:
$(free | awk '/Mem/ {print $3/$2*100 "," $4/$2*100 "," $5/$2*100 "," $6/$2*100}')
&chl=used|free|shared|buffers&chtt=Mem">
</div></body></html>
EOT
und rufen jetzt das ganze noch mal auf https://DS_name:5001/phpsrc/free/free.cgi und haben ab jetzt eine schöne graphische Anzeige unserer Memory-Belegung. Wer mag, kanns nun noch als 3rd-party-Application integrieren.


mal grad 1,3MB von 128MB Differenz. Ist doch sowieso nicht von Bedeutung. Denk mal 50% des Memories (also bei mir 64MB) gehen ab fürs tmpfs und stehen eigentlich auch nicht für die Programmausführung zur Verfügung (/tmpfs ist rein virtuell, steht als garantiert nicht auf der Platte). Die Bedeutung des freien Speichers wird bei Linux (und auch Windows) sowieso meist überschätzt. Ein Problem gibts nur für Programme, die zur Ausführung nicht genügend Platz für Daten/Stack im Memory haben und deswegen die Speicherseiten immerzu ein- und auslagern müssen, deswegen unterbrechen und laufend Prozeß-Kontext-Wechsel in Kauf nehmen müssen. Für alle anderen Programme ist das völlig nebensächlich, wenn genügend virtueller Speicher da ist (=Mem + Swap für die Daten, die Code_Segments werden beim Pagen ja eh immer von der Platten nachgeladen).
, was eh nur Schlaumeier genau verstehen. Ich wollte damit nur sagen, dass deine Befürtungen, du hättest ein 'schlechteres' System, auf keinen Fall zutreffen.