Programm zum Messen von RAM-Durchsatz

bitmuncher

Senior-Nerd
Ich suche ein Tool, mit dem ich ermitteln kann wieviele Daten ein Programm gerade pro Sekunde in den RAM schreibt und aus diesem liest. Bin für jeden Tipp dankbar. :)
 
Ich überlege gerade, wie das angestellt werden sollte. Man müsste ja direkt alle Zugriffe auf den RAM protokollieren und auswerten...ich glaube die Performance des Rechners würde ins Unerträgliche sinken. ;) Bei Programmen, die direkt dafür geschrieben worden sind, wie z.B. memtest+, ist das ja kein Problem. Da weiß man, wie groß die Blöcke sind, die man liest oder schreibt, und kann damit auch den Durchsatz bestimmen.
 
Zuletzt bearbeitet:
Naja, mit einem passenden Kernel-Modul, das die Daten an's Tool übergibt, sollte das ohne größere Performance-Verluste gehen. Auch Mechanismen wie dtrace unter Solaris wären denkbar, aber ich finde nichts passendes, was man effektiv für ein Monitoring einsetzen könnte. Scheint alles eher darauf ausgelegt zu sein Programme zu debuggen.
 
Okay....dtrace wäre eine Möglichkeit. Warum schreibst Du da nicht selbst etwas? Ich möchte aber bezweifeln, dass die Anzeige aller Prozesse in quasi Echtzeit möglich ist. Soweit ich es weiß, kann man bei dtrace nur pro process abfragen, da sollte es bei einm Betriebssystem doch recht (zeit)aufwändig werden, aber berichtigt mich wenn ich mich irre.

Code:
# Read bytes by process,
dtrace -n 'sysinfo:::readch { @bytes[execname] = sum(arg0); }'
 
# Write bytes by process,
dtrace -n 'sysinfo:::writech { @bytes[execname] = sum(arg0); }'

 
Ich brauche es primär zum Performance-Monitoring von Tomcat-Servern. Es müssten 4-6 Prozesse/Instanzen pro Server überwacht werden. Leider gibt's dtrace nicht für Linux, wenn ich richtig informiert bin.
 
Mal so nebenbei: Wie kommst du eigentlich ausgerechnet darauf diese Werte wissen zu wollen? Würde für eine Performanceüberwachung nicht der CPU-Verbrauch und die gesamte Speicherbelegung reichen?
 
Nein, das würde nicht reichen, da ich speziell für Tomcat die Werte brauche und andere auf den Servern laufende Prozesse die Werte verfälschen und schlecht berechenbar machen. Durch Einschränkungen mittels nice und limits.conf kann auch nicht zuviel RAM oder CPU verbraucht werden. Da es sich um ein zeitkritisches Cluster von Tomcats handelt, muss aber schnell reagiert werden können, wenn irgendwo ein Tomcat ein auffälliges Verhalten zeigt, wie z.B. Endlos-Loops, die ständig Werte im RAM ändern u.ä..

Kurzum: Ich muss über jedes Detail bezüglich der Tomcats informiert sein, da schon Abweichungen ihrer Webapp von 1s problematisch sein können. Das meiste konnte ich bisher mit JMX lösen, aber für den RAM-Durchsatz gibt es da nichts passendes.
 
Zurück
Oben