Guten Morgen zusammen!
Ich zeichne momentan mittels sar diverse Systemwerte auf, unter anderen den durchschnittlichen Traffic von meinem Management-Interface.
Dabei erhalte ich aber "nur" den gesamten Traffic welcher über das Interface geht.
Da vom Kunde aber die Anforderung kommt, pro Applikation die Bandbreite zu messen, suche ich nach einer Lösung den Traffic eines Prozesses zu messen. Lässt sich das ohne grossen Zusatztools realisieren oder sollte ich von der System-Seite wegkommen und lieber auf Switch/Router-Ebene anfangen?
Danke für eure Hilfe,
Simon
Traffic auf Prozess-Ebene
Re: Traffic auf Prozess-Ebene
Linux hat keinen guten Support, um Traffic pro Prozeß zu messen. Im Grunde will man dtrace haben, aber ... das ist eine lange Geschichte.simcen wrote:Da vom Kunde aber die Anforderung kommt, pro Applikation die Bandbreite zu messen, suche ich nach einer Lösung den Traffic eines Prozesses zu messen. Lässt sich das ohne grossen Zusatztools realisieren oder sollte ich von der System-Seite wegkommen und lieber auf Switch/Router-Ebene anfangen?
Re: Traffic auf Prozess-Ebene
Okay. Soll sich unser Netz-Team darum kümmern, die können sicher den Traffic auf einer bestimmten IP-Adresse messen.isotopp wrote: Linux hat keinen guten Support, um Traffic pro Prozeß zu messen. Im Grunde will man dtrace haben, aber ... das ist eine lange Geschichte.
Aus /proc/<procid>/stat lässt sich auch nichts herausholen, nehm ich mal an?!
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Traffic auf Prozess-Ebene
Nein, darin werden keine Informationen zur übertragenen Datenmenge gespeichert. Eine etwas gesprächigere Ausgabe der gleichen Informationen findest du in /proc/<PID>/status.simcen wrote:Aus /proc/<procid>/stat lässt sich auch nichts herausholen, nehm ich mal an?!
Wenn die einzelnen Applikationen unter jeweils einer eigenen UID/GID laufen, hilft dir vielleicht die Owner match extension von netfilter weiter.
Eine weitere Idee wäre, eine kleine Bibliothek zu schreiben, welche die Datenmenge protokolliert und diese über LD_PRELOAD einzuklinken. So ähnlich macht(e) das z. B. trickle, um ein Traffic Shaping pro Prozess zu erreichen. Allerdings habe ich keine Ahnung, ob es in diese Richtung schon eine Anwendung gibt.
Re: Traffic auf Prozess-Ebene
Finde diese Lösung doch relativ heikel. Ich vermute, wenn sich da ein Fehler in die Bibliothek einschleicht, könnte es massive Probleme geben. Und das möchte ich bei unseren SLA's vermeiden ;)Roger Wilco wrote: Eine weitere Idee wäre, eine kleine Bibliothek zu schreiben, welche die Datenmenge protokolliert und diese über LD_PRELOAD einzuklinken. So ähnlich macht(e) das z. B. trickle, um ein Traffic Shaping pro Prozess zu erreichen. Allerdings habe ich keine Ahnung, ob es in diese Richtung schon eine Anwendung gibt.
Zudem möchte ich nicht zu gross an der Architektur was ändern. Schliesslich soll jedes System sich darum kümmern, wofür es gebaut ist. Desshalb haben wir auch Firewalls, Packetshaper, Switch und Router im Einsatz...
Trotzdem danke ich euch für die Anregungen!