Prueba de rendimiento para simular cargas de trabajo de escritura síncrona [write + fsync]. Puede variar el número de archivos, la profundidad del directorio, etc. Ofrece tiempos detallados de lectura, escritura, desvinculación y sincronización fsync.
$ fsmark -d /tmp/fsmark-test -n 1000 -s 4096 -S
$ fsmark -d /tmp/fsmark-test -n 1000 -s 4096 -S -N 4
$ fsmark -d /tmp/fsmark-test -n 1000 -s 4096 -S -N 4 -D 10 -m
$ fsmark -d /tmp/fsmark-test -n 1000 -s 4096 -S -m
$ rm -rf /tmp/fsmark-test
1.-
script de benchmarking con fsmark, diseñado para evaluar el rendimiento de un sistema de archivos con diferentes niveles de concurrencia, tamaños de archivos y estructuras de directorios.
$ nano fsmark_benchmark.sh
#!/bin/bash
#
# Ruta base para las pruebas
TEST_DIR="/tmp/fsmark-test"
mkdir -p "$TEST_DIR"
#
# Parámetros generales
FILE_SIZE=4096 # Tamaño de archivo en bytes
FILES_PER_THREAD=1000
REPEAT=3 # Número de veces que repetir cada prueba
THREADS_LIST=(1 2 4 8) # Pruebas con diferentes niveles de concurrencia
SUBDIRS_LIST=(1 10) # Pruebas con diferentes números de subdirectorios
#
echo "=== FSMark Benchmark Script ==="
echo "Directorio de pruebas: $TEST_DIR"
echo "Tamaño de archivo: $FILE_SIZE bytes"
echo "Archivos por hilo: $FILES_PER_THREAD"
echo "Repeticiones por prueba: $REPEAT"
echo
#
# Verifica que fsmark esté instalado
if ! command -v fsmark &> /dev/null; then
echo "❌ Error: fsmark no está instalado. Intenta con: sudo apt install fsmark"
exit 1
fi
#
# Función para ejecutar una prueba
run_test() {
local threads=$1
local subdirs=$2
echo "--- Ejecutando prueba con $threads hilo(s), $subdirs subdirectorio(s) por hilo ---"
for ((i=1; i<=REPEAT; i++)); do
echo "Repetición $i de $REPEAT..."
fsmark -d "$TEST_DIR" -n "$FILES_PER_THREAD" -s "$FILE_SIZE" -N "$threads" -D "$subdirs" -S -m
echo
done
echo
}
#
# Itera sobre combinaciones de hilos y subdirectorios
for threads in "${THREADS_LIST[@]}"; do
for subdirs in "${SUBDIRS_LIST[@]}"; do
run_test "$threads" "$subdirs"
done
done
#
# Limpieza final
echo "Limpieza del directorio de pruebas..."
rm -rf "$TEST_DIR"
echo " Benchmark completado."
$ chmod +x fsmark_benchmark.sh
$ ./fsmark_benchmarck.sh