2012-08-15 33 views
7

Estoy queriendo realizar pruebas de referencia en un par de servidores que administro y me gustaría poder configurar mis propios escenarios y el orden de los eventos/automatización.Biblioteca de Benchmarking utilizable desde C#

Así que me pregunto si hay bibliotecas que se puedan usar para realizar pruebas comparativas de diferentes aspectos de una computadora con Windows, como CPU, disco IO y RAM.

Actualización 1: Dado que no parece haber ninguna biblioteca disponibles para hacer esto también voy a aceptar respuestas que apuntan a ejemplos o guías de cómo se puede probar la CPU, disco y el rendimiento de la memoria con C#.

Actualización 2 ¿hay buenas bibliotecas para esto en cualquier idioma?

+0

Recomiendo leer esto: http://www.codeproject.com/Articles/8590/An-Introduction-To-Performance-Counters, una buena introducción al [PerformanceCounter] (http://msdn.microsoft) .com/en-us/library/system.diagnostics.performancecounter.aspx) clase que creo que encontrará útil. – Bridge

+0

Eso parece interesante, pero tal vez no sea exactamente lo que estoy buscando. Los ejemplos en el proyecto de código parecen tener que ver con medir el rendimiento actual no sobre llevar el sistema al máximo y ver lo que puede hacer. Tal vez pueda usarlo junto con algún código que lleve la CPU/disco/memoria a su límite y vea qué sucede. – JensB

+0

Pregunta muy interesante. Sería increíble si pudieras resumir tus hallazgos y responder aquí :). Ahmm con C# apunta solo para Windows Server? – Gero

Respuesta

1

Esto podría estar fuera del alcance, sin embargo, estaba buscando algo similar en el nivel de prueba de la unidad y encontré this MSDN topic about Creating and Editing Load Tests.

+0

Parece que se puede usar para ejecutar una aplicación con diferentes solicitudes ... así que, en teoría, probablemente podría saturar mi CPU/disco/memoria si ejecuto la prueba hacia el código que usa ese tipo de recursos. No es exactamente lo que tenía. en mente, pero gracias por el consejo. – JensB

+0

@wokawaka En el entorno del servidor, no solo tira cosas al servidor y ve cómo se maneja. Usted escribe su programa que realiza el trabajo que necesita, martilla el programa y ve *** donde *** se produce la desaceleración. Si la desaceleración proviene de un ciclo pobremente optimizado, corrige su código. Si la ralentización se debe a la E/S de disco lenta, puede actualizar su E/S de disco con unidades más rápidas. Piénselo de esta manera, su pregunta es buscar "Lo mejor" cuando necesite estar buscando "Lo mejor en hacer cualquier trabajo que le dé al servidor". –

+0

@wokawaka Pensando más en mi frase, creo que debo reformularla como "El equipo que satisfará mis necesidades para cualquier trabajo que le dé al servidor". Si gasta $ 15,000 en un [RAMSAN] (http://en.wikipedia.org/wiki/Texas_Memory_Systems) cuando una configuración RAID 0 de un par de discos de raptor de $ 200 funcionaría bien, y usted es mi empleado, no lo haría ser mi empleado por mucho tiempo. –

3

Puede utilizar este marco de código abierto BenchmarkDotNet para la evaluación comparativa de la CPU. Incluye el uso de cronómetro, pre-llamada de GC, calentamiento, establecer la prioridad del proceso, thred, máscara de procesador-máscara, api para competiciones de referencia y agradable salida de consola con resultados.