El benchmarking es el proceso de comparar sistemas obteniendo medidas.
Es un método frecuente de comparar SIs frente a una carga característica de una instalación concreta. Es la Evaluación de las Prestaciones sobre un prototipo, y las variantes de este método sirven para evaluar la potencia relativa de un sistema a lo largo de su ciclo de vida (compararse con versiones anteriores de sí mismo), contrastar monitores y validar modelos. Las dificultades son:
- ¿Cómo determinar esa carga característica? Caracterización de la Carga.
- ¿Cómo valorar el aprovechamiento que hacen los programas de las peculiaridades de los distintos sistemas?
En el proceso de benchmarking se utiliza un Benchmark como herramienta.
Pasos
- Determinar objetivos: qué se quiere estudiar y porqué.
- Seleccionar el benchmark adecuado: tener en cuenta la representatividad de la carga.
- Determinar los aspectos del sistema que influyen en el rendimiento: se debe asegurar la comparabilidad entre experimentos.
- Ejecutar el benchmark.
- Analizar los resultados para estudiar la causa de la variación.
Factores que Influyen
- El tipo y versión del SO.
- El compilador usado en la prueba.
- El lenguajes de programación.
- El sistema de librerías de ejecución.
- El tamaño de la memoria cache.
Errores Comunes
- Representar solo los comportamientos medios: olvidar la varianza.
- Controlar inadecuadamente el nivel de carga.
- Ignorar los efectos de la cache: ignorar el orden de las peticiones.
- Ignorar el overhead del monitor.
- No validar las medidas: errores de medición.
- No asegurar las mismas condiciones iniciales: experimentos no repetibles.
- No medir las prestaciones del estado transitorio.
- Comparar las prestaciones con las utilizaciones de recursos.
- Recoger muchos datos pero analizarlos muy poco.