Estoy trabajando en un software integrado, donde utilicé cryptsetup para crear un espacio en disco cifrado a través de una conexión estándar Ethernet NFS... Me interesa comprender la velocidad de escritura que logra este disco (análisis de rendimiento simple).
Primero ejecuto un punto de referencia estándar
root@sbc-lynx:/mnt# cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 33098 iterations per second for 256-bit key
PBKDF2-sha256 52851 iterations per second for 256-bit key
PBKDF2-sha512 34492 iterations per second for 256-bit key
PBKDF2-ripemd160 29789 iterations per second for 256-bit key
PBKDF2-whirlpool 7062 iterations per second for 256-bit key
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 26.7 MiB/s 24.5 MiB/s
serpent-cbc 128b 6.6 MiB/s 7.3 MiB/s
twofish-cbc 128b 10.2 MiB/s 11.0 MiB/s
aes-cbc 256b 21.4 MiB/s 20.8 MiB/s
serpent-cbc 256b 6.6 MiB/s 7.3 MiB/s
twofish-cbc 256b 10.2 MiB/s 10.2 MiB/s
aes-xts 256b 9.0 MiB/s 9.0 MiB/s
serpent-xts 256b 7.0 MiB/s 7.2 MiB/s
twofish-xts 256b 10.7 MiB/s 10.9 MiB/s
aes-xts 512b 7.1 MiB/s 7.0 MiB/s
serpent-xts 512b 7.0 MiB/s 7.1 MiB/s
twofish-xts 512b 10.7 MiB/s 10.9 MiB/s
Sólo para fines de prueba, elijo ver eaes-cbc-256 que parece tener buen rendimiento.
Pero ahora quiero probar la velocidad real conseguida. mi NFS está montado en /mnt/ y la carpeta cifrada está montada correctamente en /home/encryptroot/. Solía:
time dd bs=5M count=1 if=/dev/zero of=/mnt/ppx conv=fsync
1+0 records in
1+0 records out
real 0m0.556s
user 0m0.000s
sys 0m0.110s
time dd bs=5M count=1 if=/dev/zero of=/home/encryptroot/ppx conv=fsync
1+0 records in
1+0 records out
real 0m1.104s
user 0m0.000s
sys 0m0.180s
De estos resultados obtuve en la carpeta normal una velocidad de casi 9 MB/s
mientras que para la carpeta cifrada obtuve 4 MB/s
Pregunta 1) ¿Es este un método válido para evaluar la velocidad de escritura? Al utilizar el parámetro fsync, ¿esto debería evaluar el tiempo utilizado para copiar realmente el archivo en el disco (no para copiarlo en cachés)?
No estoy satisfecho con estos resultados, porque con un potencial de cifrado de 20 MB/s no puedo llenar el ancho de banda total disponible (alrededor de 9 MB/s).
Investigación final: cambié el cifrado y utilicé los aes-xts predeterminados que deberían alcanzar un máximo de 9 MB/s. Repetí
time dd bs=5M count=1 if=/dev/zero of=/home/encryptroot/ppx conv=fsync
1+0 records in
1+0 records out
real 0m2.281s
user 0m0.000s
sys 0m0.180s
Obteniendo una velocidad de escritura de 2,2 MB/s.
Pregunta 2) ¿Hay otros factores a considerar que me faltan para analizar estos resultados? ¿Es posible que la sobrecarga de los xts sea tan alta como para reducir el rendimiento? ¿Y tiene alguna otra prueba que sugerir?
Gracias