¿Por qué las tasas de transferencia de zfs en Linux se informan incorrectamente después de expandir la matriz?

¿Por qué las tasas de transferencia de zfs en Linux se informan incorrectamente después de expandir la matriz?

Actualicé las unidades en una matriz Raidz de 4 unidades en un servidor NAS y la matriz se expandió automáticamente al nuevo tamaño. Al probar las tasas de transferencia desde el servidor NAS, ahora observo que cuando se realizan transferencias de lectura grandes, el rendimiento es pobre y cuesta superar los 10 MB/s, aunque iotop y zpool iostat pueden reportar números muy altos, hasta 500 MB/s. ¿Qué podría estar llevando a esto? ¿Comportamiento extraño? A medida que fui actualizando la matriz, también puedo observar que funciona igual si hay 4 dispositivos en línea o degradados a 3.

El servidor está conectado con una única conexión de red gigabit y puede saturarlo con un solo disco usando ext4

Respuesta1

Descubrí que, como había estado experimentando con la configuración de la caché para ver qué pasaba, había dejado la caché principal apagada, lo que puede resultar en que la IO real sea mucho mayor que la IO lógica debido a

[aplicación] lee un archivo, obtiene 4k (¿tamaño de página?) de datos y los procesa, luego lee los siguientes 4k, etc.

ZFS, sin embargo, no puede leer sólo 4k. Lee 128k (tamaño de registro) de forma predeterminada. Como no hay caché (lo has desactivado), el resto de los datos se desecha.

128k / 4k = 32

32 x 2,44 GB = 78,08 GB

deForos de FreeBSD

información relacionada