Benchmarking (Español)
Benchmarking (o evaluación comparativa) es el acto de medir el rendimiento y comparar los resultados con los de otro sistema o un estándar bien aceptado a través de un procedimiento unificado. Este procedimiento unificado para la evaluación del desempeño del sistema puede ayudar a contestar preguntas como la siguientes:
- ¿El sistema se está desempeñando como debería?
- ¿Qué versión del driver debería usar para conseguir el óptimo desempeño?
- ¿El sistema es capaz de hacer el trabajo x?
Se pueden utilizar muchas herramientas para determinar el rendimiento del sistema, a continuación se proporciona una lista de las herramientas disponibles.
Herramientas individuales
UnixBench
Instale unixbenchAUR, para ejecutarla utilice la orden ubench.
Véase también:
- https://github.com/kdlucas/byte-unixbench
- https://github.com/kdlucas/byte-unixbench/blob/master/UnixBench/USAGE
interbench
interbench es una aplicación diseñada para hacer benchmarks de la interactividad de Linux.
Está diseñada para medir el efecto de los cambios en el diseño del kernel de Linux o cambios en la configuración del sistema como el CPU, planificador de E/S (I/O scheduler) y el sistema de archivos.
interbench está disponible en AUR: interbenchAUR
Véase también:
ttcp
ttcp (Test TCP) mide el ancho de banda de punto a punto sobre cualquier conexión de red. El programa debe de estar instalado en ambos nodos en los cuales se medirá el ancho de banda.
Se pueden encontrar varios tipos de ttcp en la AUR:
iperf
iperf es una herramienta sencilla para analizar el ancho de banda de punto a punto que puede usar tanto TCP como UDP. Tiene un lindo formato de salida y un modo de prueba en paralelo.
Se puede instalar el paquete iperf o una versión diferente con iperf3
time
La orden time(1) provee un cronometraje estadístico acerca del comando ejecutado ya que demuestra el tiempo entre que el comando se invocó y llegó a su fin.
El paquete time contiene el comando time
y algunas shell contienen time
de manera predeterminada.
$ time tar -zxvf archivo.tar.gz
hdparm
Los medios de almacenamiento se pueden analizar con hdparm (hdparm). Usando hdparm con el switch -Tt se puede cronometrar con lecturas secuenciales. Este método es independiente a la alineación de las particiones!
# hdparm -Tt /dev/sdX
/dev/sdX: Timing cached reads: x MB in y seconds = z MB/sec Timing buffered disk reads: x MB in y seconds = z MB/sec
gnome-disks
Existe un benchmark gráfico llamado gnome-disks en el paquete gnome-disk-utility que dará lecturas min/max/ave (mínimo/máximo/promedio) junto con los tiempos de acceso un una linda interfaz gráfica. Este método es independiente a la alineación de las particiones!
# gnome-disks
Los usuarios deberán navegar a través de la GUI para llegar al botón de prueba de rendimiento ("Más acciones..." > "Probar el rendimiento del disco..."). Ejemplo
KDiskMark
kdiskmarkes una herramienta de benchmarking para HDD y SSD con una interfaz gráfica muy amigable. KDiskMark con su configuración preestablecida y poderosa GUI llama a Flexible I/O Tester y maneja el output para proporcionar un resultado de benchmark comprensible y fácil de ver.
systemd-analyze
$ systemd-analyze plot > boot.svg
Trazará una detallada gráfica con la secuencia de arranque: El tiempo del kernel, el tiempo del espacio de usuario y el tiempo tomado por cada servicio. Ejemplo
dd
La herramienta dd puede ser utilizada tanto para medir la escritura como la lectura. ¡Este método depende de la alineación de la partición! En otras palabras, si no alineaste correctamente tus particiones, este hecho será visible aquí ya que se lee y escribe a un filesystem montado.
Primero, introduzca un directorio en el SSD con al menos 1.1 GB de espacio libre (que de los permisos wrx a tu usuario), escriba un archivo de texto para medir las velocidades de escritura y para darle al dispositivo algo que leer:
$ dd if=/dev/zero of=/ruta/al/SSD/tempfile bs=1M count=1024 conv=fdatasync,notrunc status=progress
1024+0 records in 1024+0 records out v bytes (w MB, x MiB) copied, y s, z MB/s
sync
y más opciones de dd
relacionadas.Después, limpie el buffer-cache para medir las velocidades de lectura correctas directamente del dispositivo:
# echo 3 > /proc/sys/vm/drop_caches $ dd if=tempfile of=/dev/null bs=1M count=1024 status=progress
1024+0 records in 1024+0 records out v bytes (w MB, x MiB) copied, y s, z MB/s
Ahora que el último archivo está en el buffer, repita la orden para ver la velocidad del buffer-cache:
$ dd if=tempfile of=/dev/null bs=1M count=1024 status=progress
1024+0 records in 1024+0 records out v bytes (w MB, x MiB) copied, y s, z MB/s
Finalmente, borre el archivo temporal.
$ rm tempfile
dcfldd
Dcfldd no muestra la velocidad promedio en MB/s como lo hace dd sino que utiliza time, pero se puede resolver.
Cronometra la limpieza del disco:
# time dcfldd if=/dev/zero of=/dev/sdX bs=4M
18944 blocks (75776Mb) written.dcfldd:: No space left of device real 16m17.033s user 0m0.377s sys 0m51.160s
Para calcular los MB/s se divide el resultado de la orden dcfldd sobre el tiempo en segundos. Por ejemplo: 75776Mb / (16.4 min * 60) = 77.0 MB/s.
7z
El comando 7z puede ser utilizado para medir la velocidad del CPU en MIPS y revisar errores en la RAM. Simplemente instale p7zip y corra el comando de abajo. Información más detallada puede ser vista en [1].
$ 7z b
peakperf
peakperf-gitAUR es un microbenchmark de referencia que logra el máximo rendimiento en CPU x86_64. Algunos problemas pueden reducir el rendimiento proporcionado por su CPU, como la refrigeración de la CPU. Con Peakperf puede comprobar si su CPU proporciona toda la potencia que es capaz de ofrecer.
Puede calcular el rendimiento (medido en GFLOP/s) que debería obtener usando su CPU (véase [2]) y compararlo con el rendimiento que peakperf le dio. Si ambos valores son iguales (o muy similares), su CPU se comporta como debería.
Paquetes software
Bonnie++
bonnie++ es una reescritura en C++ de la suite original Bonnie de evaluación comparativa que tiene como objetivo realizar varias pruebas de rendimiento del disco duro y del sistema de archivos.
Véase también:
IOzone
IOzone es útil para realizar un análisis amplio del sistema de archivos de la plataforma informática de un proveedor.
Este programa está disponible en AUR: iozoneAUR.
Véase también el artículo de BBS: iozone para evaluar los programadores de E/S... ¡los resultados NO son los esperados!.
HardInfo
hardinfo-gitAUR[enlace roto: package not found] puede recopilar información sobre el hardware y el sistema operativo de su sistema, realizar pruebas comparativas y generar informes imprimibles en HTML o en texto sin formato. HardInfo realiza pruebas comparativas de CPU y FPU y tiene una interfaz basada en GTK muy limpia.
Phoronix Test Suite
Phoronix Test Suite es la plataforma de pruebas y evaluación comparativa más completa disponible que proporciona un marco extensible para el que se pueden añadir fácilmente nuevas pruebas. El software está diseñado para llevar a cabo con eficacia evaluaciones comparativas cualitativqs y cuantitativqs de una manera limpia, reproducible y fácil de utilizar.
Phoronix Test Suite se basa en las pruebas exhaustivas y las herramientas internas desarrolladas por Phoronix.com desde 2004, junto con el soporte de los principales proveedores de software y hardware de computadora de primer nivel. Este software es de código abierto y está licenciado bajo GNU GPLv3.
Originalmente desarrollado para pruebas automatizadas de Linux, desde entonces se ha añadido compatibilidad con Phoronix Test Suite para los sistemas operativos OpenSolaris, Apple macOS, Microsoft Windows y BSD. Phoronix Test Suite consta de un núcleo de procesamiento ligero (pts-core) y cada evaluación consta de un perfil basado en XML y scripts de recursos relacionados. El proceso desde la instalación del evaluador hasta la evaluación actual y el análisis de componentes importantes de hardware y software está muy automatizado y es completamente repetible, y solo solicita a los usuarios la confirmación de las acciones.
Phoronix Test Suite interactúa con OpenBenchmarking.org como una plataforma web colaborativa para el almacenamiento centralizado de resultados de pruebas, el intercambio de perfiles y resultados de pruebas, funciones analíticas avanzadas y otras funciones. Phoromatic es un componente empresarial para orquestar la ejecución de pruebas en múltiples sistemas con capacidades de administración remota.
Esta suite se puede instalar con el paquete phoronix-test-suiteAUR. También hay una versión de desarrollo disponible con phoronix-test-suite-gitAUR.
S
S, un paquete de evaluación comparativa de E/S, es una pequeña colección de scripts para medir el rendimiento de E/S de almacenamiento.
Ha sido desarrollado por algodev, el equipo detrás del programador (scheduler) BFQ.
Descargue o clone el proyecto, instale sus dependencias y ejecútelo como superusuario (privilegios necesarios para cambiar el programador del disco).
s-tui
s-tui es una interfaz de tipo curses estéticamente agradable y útil que muestra gráficos de frecuencia de CPU, utilización, temperatura, consumo de energía y tiene un probador de estrés incorporado.
Flash media
Las características de rendimiento se pueden medir cuantitativamente utilizando iozoneAUR. Los valores de lectura y escritura sostenidos pueden, pero a menudo no lo hacen, correlacionarse con casos de uso reales de operaciones intensas de E/S, como desempaquetar y escribir una cantidad de archivos en una actualización del sistema. Una métrica relevante a considerar en estos casos es la velocidad de escritura aleatoria para archivos pequeños.
La invocación de ejemplo prueba un archivo de 10M utilizando un tamaño de registro de 4k:
$ iozone -e -I -a -s 10M -r 4k -i 0 -i 1 -i 2
... random random kB reclen write rewrite read reread read write 10240 4 661 649 5802 5822 3892 624
Gráficos
Basemark GPU
Basemark GPU es una herramienta de evaluación para analizar y medir el rendimiento de la API de gráficos (OpenGL 4.5, OpenGL ES 3.1, Vulkan y Microsoft DirectX 12) en plataformas móviles y de escritorio. Basemark GPU se dirige tanto a plataformas de escritorio como móviles al proporcionar modos de alta y media calidad. El modo de alta calidad se ocupa de las cargas de trabajo de escritorio de última generación, mientras que el modo de calidad media se ocupa de las cargas de trabajo móviles equivalentes.
Si está utilizando GPU AMD y tiene varias implementaciones de vulkan instaladas simultáneamente, en la página de prueba las verá como GPU separadas en la lista desplegable de dispositivos gráficos.
Basemark GPU está disponible en el paquete basemarkAUR.
Blender-benchmark
Blender-benchmark recopilará información sobre el sistema, como sistema operativo, RAM, tarjetas gráficas, modelo de CPU, así como información sobre el rendimiento del sistema durante la ejecución de la evaluación. Después de eso, el usuario podrá compartir el resultado en línea en la plataforma Blender Open Data o guardar los datos localmente.
Blender-benchmark está disponible en el paquete blender-benchmarkAUR.
GFXBench
GFXBench es un evaluador de gráficos de alta gama que mide el rendimiento móvil y de escritorio con funciones de gráficos de próxima generación en todas las plataformas. Como verdadero evaluador multi-API, GFXBench es compatible con todas las API estándar de la industria y específicas del proveedor, incluidas OpenGL, OpenGL ES, Vulkan, Metal, DirectX/Direct3D y DX12.
Las pruebas de API de Vulkan están actualmente en desarrollo y solo están disponibles para sus socios corporativos.
GFXBench está disponible en el paquete gfxbenchAUR.
glmark2
glmark2 es un evaluador de OpenGL 2.0 y ES 2.0.
glmark2 está disponible en el paquete glmark2.
glxgears
glxgears es una prueba popular de OpenGL que ofrece un rendimiento de OpenGL muy simple y genera la velocidad de fotogramas. Aunque glxgears puede ser útil como prueba de las capacidades de representación directa del controlador gráfico, es una herramienta obsoleta que no representa el estado actual de los gráficos GNU/Linux y las posibilidades generales de OpenGL. glxgears solo prueba un pequeño segmento de las capacidades de OpenGL que podrían utilizarse en un juego. Los aumentos de rendimiento observados en glxgears no se realizarán necesariamente en ningún juego determinado. Véase aquí para obtener más información.
glxgears se puede instalar mediante los paquetes mesa-utils y lib32-mesa-utils (para multilib).
GpuTest
GpuTest es una prueba de esfuerzo de GPU multiplataforma (Windows, Linux y Max OS X) y una evaluación comparativa de OpenGL. GpuTest viene con varias pruebas de GPU, incluidas algunas populares del mundo de Windows (FurMark o TessMark).
GpuTest está disponible en el paquete gputestAUR.
intel-gpu-tools
intel-gpu-tools le brinda información relevante de la GPU integrada. Esto puede ser bastante útil para diagnosticar problemas de aceleración de GPU.
Para utilizarlo, instale el paquete intel-gpu-tools.
MangoHud
Véase MangoHud.
Unigine Engine
Unigine corp. ha producido varios evaluaciones comparativas modernas de OpenGL basados en su motor gráfico con características como:
- Iluminación dinámica por píxel
- Mapeo de oclusión normal y de paralaje (parallax)
- Representación HDR de 64 bits
- Niebla y luz volumétrica
- Potentes sistemas de partículas: fuego, humo, explosiones
- Conjunto extensible de sombreadores (GLSL / HLSL)
- Posprocesamiento: profundidad de campo, refracción, brillo, desenfoque, corrección de color y mucho más
Las evaluaciones comparativas de Unigine han encontrado un uso reciente por parte de aquellos que buscan hacer overclock a sus sistemas. Heaven se ha utilizado especialmente para las pruebas iniciales de estabilidad de overclocking.
Estas evaluaciones comparativas se pueden encontrar en AUR:
- unigine-sanctuaryAUR (2007)
- unigine-tropicsAUR (2008)
- unigine-heavenAUR (2009)
- unigine-valleyAUR (2013)
- unigine-superpositionAUR (2017)
vkmark
vkmark es un conjunto extensible de evaluación comparativa de Vulkan con escenas específicas y configurables.
vkmark está disponible en el paquete vkmark.