Benchmarking (Español)

From ArchWiki
Esta traducción de Benchmarking fue revisada el 2022-11-01. Si existen cambios puede actualizarla o avisar al equipo de traducción.

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:

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.

Sugerencia: Con un benchmark cuidadoso, se puede comparar distinto hardware

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
Nota: Para una evaluación certera de la velocidad de lectura se recomienda ejecutar el comando 2 ó 3 veces y hacer el promedio de los resultados de manera manual.

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.

Nota: ¡Este método requiere sea ejecutado desde una partición montada en el dispositivo de interés!

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
Sugerencia: Véase dd-benchmark para una explicación sobre los requerimientos de 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
Nota: Uno debería correr el comando de arriba 4 ó 5 veces y manualmente conseguir el promedio de los resultados para conseguir una evaluación precisa del la velocidad de lectura del buffer.

Finalmente, borre el archivo temporal.

$ rm tempfile
Nota: Algunos controladores de SSD tienen hardware de compresión, los cuales pueden arruinar los resultados del benchmark. Véase https://www.pugetsystems.com/labs/articles/SSDs-Advertised-vs-Actual-Performance-179/

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.

Nota: Aunque el objetivo de peakperf es probar la CPU, también es una excelente manera de probar su refrigeración, ya que acelerará su CPU al límite.

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.

Advertencia: Por defecto, bonnie++ escribe al menos el doble del tamaño de RAM en el disco. Si desea conservar su SSD, utilice la opción no predeterminada.

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
Nota: Los valores de prueba se muestran en KB/s.

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:

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.

Véase también