Benchmarking (Español)
Benchmarking es el acto de medir el desempeño 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?
Herramientas individuales
UnixBench
Instale unixbenchAUR, para ejecutarla utilice el comando 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 la 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
El comando 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 archive.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 benchmark ("More actions..." > "Benchmark Volume..."). 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
Va a 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=/path/to/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, limpiar el buffer-cache para medir las velocidades de lectura correctas directo 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 el comando 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 del comando 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