WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 28.07.2006, 15:55   #1
ingomar
rh 805007434729099
 
Benutzerbild von ingomar
 
Registriert seit: 03.09.2003
Ort: wien
Alter: 55
Beiträge: 710


Standard "speicherverbrauch pro user" monitor ?

Hallo allerseits,

kennt hier jemand eine effektive art,
1, speicherverbrauch im RAM und
2, dieses pro user zu "monitor´n/accounten" ?

Das Ganze konsolidiert, also nicht als Liste aller Userprozesse, sondern eine einfache Zahl, wie z.b. "User GRA mit 800 MB" im ram...


ich habe/kenne selbst sar - das macht aber leider keine Unterscheidung pro User... vielleicht kennt da jemand was ?

OS ist übrigens Linux Rothut oder Debian, es sind Entwicklermaschinen wo halt pro User schon mal 20 ssh und paar andere Sachen drauf sind....

Danke
ingomar ist offline   Mit Zitat antworten
Alt 28.07.2006, 17:04   #2
citizen428
Elite
 
Registriert seit: 04.04.2001
Beiträge: 1.358


citizen428 eine Nachricht über ICQ schicken
Standard

Hier ein Bash-Schnellschuss, liefert den Gesamtverbrauch in KB:

Zitat:
mem_total=0; for i in `ps -U [username] ho size` ; do mem_total=$(($i + $mem_total)) ; done ; echo $mem_total
____________________________________
citizen428.blog() | CARGAL | open.source.mac
citizen428 ist offline   Mit Zitat antworten
Alt 31.07.2006, 09:02   #3
ingomar
rh 805007434729099
 
Benutzerbild von ingomar
 
Registriert seit: 03.09.2003
Ort: wien
Alter: 55
Beiträge: 710


Standard

klingt fein, thanks...

ich glaub, ich werd das ding in einen halbwegs flotten cronjob einbauen, dann bekomme ich eine art history raus...
ingomar ist offline   Mit Zitat antworten
Alt 01.08.2006, 18:14   #4
citizen428
Elite
 
Registriert seit: 04.04.2001
Beiträge: 1.358


citizen428 eine Nachricht über ICQ schicken
Standard

Weil mir vorher ein paar Minuten fad war...

/usr/local/bin/mem_total
Code:
mem_total=0

for i in `ps -U $1 ho size`
    do
        mem_total=$(($i + $mem_total))
    done
[ $mem_total -gt 0 ] && echo "$1: ${mem_total}kB ($(($mem_total/1024))MB)"
In folgender for-Schleife aufgerufen, gibt dir das für alle User aus /etc/passwd den Speicherverbrauch in kB und MB (aber nur wenn diese auch wirklich Speicher verbrauchen):

Code:
for i in `cat /etc/passwd | grep -v "^#" | cut -d":" -f1` ; do
/usr/local/bin/mem_total $i ; done;
Output:
Code:
root: 38984kb (38MB)
daemon: 248kb (0MB)
lp: 1104kb (1MB)
www-data: 2780kb (2MB)
Debian-exim: 884kb (0MB)
messagebus: 372kb (0MB)
ntp: 528kb (0MB)
nagios: 260kb (0MB)
hal: 1644kb (1MB)
foo: 12012kb (11MB)
[snip]
____________________________________
citizen428.blog() | CARGAL | open.source.mac
citizen428 ist offline   Mit Zitat antworten
Alt 01.08.2006, 18:46   #5
citizen428
Elite
 
Registriert seit: 04.04.2001
Beiträge: 1.358


citizen428 eine Nachricht über ICQ schicken
Standard

Und wieder 5 Minuten togeschlagen...

Code:
 #!/bin/bash


 if [ $# -eq 1 ]
     then
         users=$1
     else
         users=`cat /etc/passwd | grep -v "^#" | cut -d":" -f1`
 fi

 for user in $users ; do
     mem_total=0

     for i in `ps -U $user ho size` ; do
         mem_total=$(($i + $mem_total))
     done

     [ $mem_total -gt 0 ] && echo "$user: ${mem_total}kb ($(($mem_total/1024))MB)"
done
Ohne Parameter gibt dir das Skript die komplette Userliste aus (so wie die for-Schleife im vorigen Post), alternativ kannst du das Skript mit genau einem Usernamen aufrufen, dann bekommst du nur den Speicherverbrauch dieses Benutzers.

Code:
$ mem_total foo
foo: 268748kb (262MB)

$ mem_total
root: 38984kb (38MB)
daemon: 248kb (0MB)
lp: 1104kb (1MB)
www-data: 2780kb (2MB)
Debian-exim: 884kb (0MB)
messagebus: 372kb (0MB)
ntp: 528kb (0MB)
nagios: 260kb (0MB)
hal: 1644kb (1MB)
foo: 12012kb (11MB)
[snip]
____________________________________
citizen428.blog() | CARGAL | open.source.mac
citizen428 ist offline   Mit Zitat antworten
Alt 02.08.2006, 10:48   #6
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard

http://virtualthreads.blogspot.com/2...-on-linux.html
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees.
Who-T ist offline   Mit Zitat antworten
Alt 02.08.2006, 12:18   #7
citizen428
Elite
 
Registriert seit: 04.04.2001
Beiträge: 1.358


citizen428 eine Nachricht über ICQ schicken
Standard

@Who-T: guter Einwurf, ich bin nämlich davon ausgegangen, dass das dem OP klar ist.

Deswegen hab ich gestern daheim auch noch angefangen eine kleine C-Version die /proc/<pid>/statm auswertet zu schreiben, aber wie ich mich kenne ist das wieder so ein Ding, das nie fertig wird (vor allem weil ich seit Jahren kein C mehr geschrieben hab)...
____________________________________
citizen428.blog() | CARGAL | open.source.mac
citizen428 ist offline   Mit Zitat antworten
Alt 02.08.2006, 13:36   #8
ingomar
rh 805007434729099
 
Benutzerbild von ingomar
 
Registriert seit: 03.09.2003
Ort: wien
Alter: 55
Beiträge: 710


Standard

*lol* citizen428, bitte schreib dir keinen wolf

der einwurf des Who-T war gut, aber das hat nicht wirklich viel zu tun... im endeffekt gehts hier um einen/ ein paar rechner der type dl380 oder äquivalent, die mit 4 gb ram oder mehr für entwickler bereitstehen...

... os ist rotschopf, und wie gesagt es gibt einfach manche profis, die die maschine einfach so weit vollsch**xen, das trotz grossem swapspace einfach nix mehr geht...

es gäbe ja möglichkeiten über security/limits den speicherverbrauch einzuschränken, aber das kann bei testmaschinen einfach saumässig nach hinten losgehen, deswegen möcht ichs memory irgendwie mit ansehen bzw. monitoren und niederschreiben.
letzteres allerdings ist pro prozess bedingt sinnvoll, weil mehrere user hier verschiedene DB-apps ausführen, die dann zusammen zum teil die lustigsten wirkungen haben

anyway, freue mich über weiteres, den zweck an sich hats aber schon erfüllt ( mir ists ja sogar egal ob kb oder mb, weil man dank cronjob sieht, das die frisch entwickelte routine/apps eines kollegen einmal 15000K und dann plötzlich knappe 4 gb gefressen haben)...



dickes lob jedenfalls !
ingomar ist offline   Mit Zitat antworten
Alt 02.08.2006, 15:47   #9
citizen428
Elite
 
Registriert seit: 04.04.2001
Beiträge: 1.358


citizen428 eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von ingomar
*lol* citizen428, bitte schreib dir keinen wolf
Kein Problem, ich bin nach der ersten Bash-Version einfach nur drauf gekommen, dass ich das Teil selbst nicht unpraktisch finde.

Die C-Variante ist nur eine Spielerei für mich selbst, hauptsächlich um meine angestaubten C-Skills wieder ein wenig auf Vordermann zu bringen...
____________________________________
citizen428.blog() | CARGAL | open.source.mac
citizen428 ist offline   Mit Zitat antworten
Alt 03.08.2006, 16:45   #10
colossus
Master
 
Registriert seit: 24.02.2002
Ort: Wien
Alter: 40
Beiträge: 611


Standard

Zitat:
Original geschrieben von citizen428
Code:
for i in `cat /etc/passwd | grep -v "^#" | cut -d":" -f1` ; do
/usr/local/bin/mem_total $i ; done;
Think of the kittens!!!1 :ugly:

scnr
____________________________________
Free Software. Free Society. Better Lives.
colossus ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:36 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag