Mich interessierte letztens die Summe des angemeldeten und residenten Speichers einer bestimmten Klasse von Prozessen. Mangels Bordmitteln habe ich mir folgendes kleines Script geschrieben, vielleicht kann's der ein oder die andere ja auch gebrauchen:
Liegt bei mir unter "/usr/local/bin/mem".
Das Script addiert einfach die "virtual" und "resident size" der "ps"-Ausgabe, optional nach Filterung der Prozessliste per egrep, und gibt die Summen aus.
Beispiel 1: Speichersummen aller Prozesse
Beispiel 2: Speichersummen aller java-Prozesse
Beispiel 3: Speichersummen aller Nicht-root-Prozesse
Code:
#!/bin/bash
PARAMS=$*
if test "${PARAMS}" != "" ; then
ps aux | egrep ${PARAMS} | egrep -v "(egrep|ps aux|awk.*virtual|${0})" \
| awk '{ vs += $5; rs += $6 }; END { print "virtual=" vs " resident=" rs }'
else
ps aux | egrep -v "(egrep|ps aux|awk.*virtual|${0})" \
| awk '{ vs += $5; rs += $6 }; END { print "virtual=" vs " resident=" rs }'
fi
Liegt bei mir unter "/usr/local/bin/mem".
Das Script addiert einfach die "virtual" und "resident size" der "ps"-Ausgabe, optional nach Filterung der Prozessliste per egrep, und gibt die Summen aus.
Beispiel 1: Speichersummen aller Prozesse
Code:
ns16:~ # mem
virtual=5356540 resident=1744040
Beispiel 2: Speichersummen aller java-Prozesse
Code:
ns16:~ # mem java
virtual=1365300 resident=221784
Beispiel 3: Speichersummen aller Nicht-root-Prozesse
Code:
ns16:~ # mem -v ^root
virtual=4678532 resident=1706868