2009-10-19 19 views
6

Tengo un servicio de Windows .NET que hace mucha magia de red (WMI, Ping, etc., la lista es muy larga). Me gustaría crear un perfil, con la mayor facilidad y detalle posible, la cantidad de ancho de banda que utiliza la aplicación en total y cada parte del código.Cómo perfilar el uso de la red de una aplicación .NET

¿Hay alguna herramienta que pueda ayudarme a hacer eso? El generador de perfiles de hormigas, por ejemplo, me ayudará con los perfiles de memoria y el perfil de utilización del procesador. Sin embargo, no hace mucho con los perfiles de red. ¿Hay algo como ANT para perfiles de red? Si no, ¿cuáles son mis opciones a la hora de obtener esta información?

Gracias

en respuesta a algunas respuestas: añadido de aclaración

Cualquiera que sea la herramienta, si no se puede enlazar directamente con el código (que no creo que es posible) que tiene que ser capaz de funcionar desatendido durante días manteniendo un registro (registro en un archivo o base de datos) del tráfico de red utilizado por un proceso. Debe poder especificar directamente el proceso (que wireshark no puede hacer). Microsoft Network Monitor puede hacer eso, sin embargo, hace mucho más (mucho análisis, fotograma a fotograma) que no es utilizable debido a problemas de rendimiento (después de unas horas de ejecución ya tengo un millón de fotogramas para contar. intente copiar el material en Excel o en una base de datos, la copia solo tarda más de 30 minutos).

De veras, parece una cosa tan simple de hacer, sin embargo, estoy teniendo un tiempo sorprendentemente difícil para encontrar una herramienta que haga lo que quiero.

Respuesta

1

Puede utilizar la utilidad Wireshark para capturar todos los paquetes que salen de la máquina en la que se está ejecutando el servicio. A continuación, puede filtrar esos paquetes en función del contenido que contiene para limitarlos a los paquetes que le interesan. Usando esa información puede encontrar las métricas que está buscando.

+0

Eso podría funcionar, pero no es nada fácil. Por un lado, no parece que puedas filtrar por proceso, que sería enorme para algo como esto. En segundo lugar, no lo vincula al código en absoluto (como el generador de perfiles ANT hace memoria y el rendimiento del procesador). Así que sí, este es un paso, pero estoy buscando más. – Mark

+0

La razón por la que es difícil se debe al hecho de que está tratando de rastrear la información fuera del proceso y correlacionarla con los atributos en proceso. La razón por la que esas otras herramientas funcionan tan bien es porque está relacionada con el código administrado y en proceso. Si está utilizando WCF, es posible que pueda rastrear un poco mejor, pero todavía está lidiando con el problema OoP. –

1

Me gusta bastante SocketSniff. Se conecta a un único proceso en ejecución y muestra todo el tráfico relacionado con el socket. No tiene una gran decodificación como hace WireShare, pero también elimina mucho ruido.

Cuestiones relacionadas