2009-09-15 3 views
1

J'ai essentiellement un processus Unix en cours d'exécution et il effectue un traitement lourd ainsi que la sortie de données sur le réseau. Je me demandais quels appels système sont utilisés pour interagir avec la couche réseau.outil de performance

Je voudrais mesurer les mesures de performance de ce processus: utilisation du processeur, utilisation du réseau. Je ne suis pas sûr si ce processus est bloqué parce qu'il écrit trop rapidement à la couche réseau ou si ce processus passe trop de temps à traiter le code.

Des suggestions?

Merci!

+0

Votre question serait mieux servie sur http://serverfault.com. – Randolpho

+0

Est-ce que vous déboguez du code de votre choix? Si oui, plus de détails seraient utiles. Autrement, serverfault.com est vraiment là où vous voudriez être. –

Répondre

0

Ce dont vous avez réellement besoin, c'est d'un profileur. De cette façon, vous serez en mesure de voir quelles parties de votre code prennent le plus de temps. Essayez http://oprofile.sourceforge.net/ ou un profileur spécifique pour votre chaîne d'outils. Pour une mesure rapide, vous pouvez essayer d'exécuter votre processus sous strace pour voir quels appels système il fait et voir en direct combien de temps ils prennent.

1

Qu'est-ce qu'unix? Solaris/FreeBSD/OSX ont dtrace, Linux a oprofile. Tous ont tcpdump pour vous d'analyser le flux du réseau.

+0

Bon, je ne sais pas pourquoi j'ai supposé qu'il utilisait Linux et qu'il possédait le code. –

0

Je suggère valgrind qui est un autre profileur.