Internamente los SSDs (
y los HDD modernos también) utilizan un tamaño de sector de 4KiB, y dado que los tiempos de acceso en un SSD son prácticamente 0 (frente a los tiempos de transferencia al menos) no suele tener mucho sentido usar una unidad de asignación más grande ni más pequeña.
Más pequeña no sirve por motivos evidentes (la controladora va a tener que leer 4KiB igualmente y descartar lo que sobra, no aporta nada al rendimiento y es más overhead para todas las operaciones). Mas grande en un HDD mecánico que sabes a ciencia cierta que va a almacenar pocos archivos pequeños como dices podría tener algo de sentido, pero en general hay poco que ganar. En un SSD más grande no aporta nada porque el rendimiento en secuencial se queda igual, y el rendimiento con bloques pequeños empeora.
Yo hace años hice algunas pruebas con HDD externos y con pendrives usando tamaños de unidad de asignación más grandes, y bueno, en secuencial se podía ganar un pelín, pero eran ganancias "single digit" en ambos casos y el rendimiento con bloques pequeños caía en picado.
Así que... aunque supongo que no es la mejor respuesta que se puede dar, diría que hay motivos de sobra para dejarla por defecto (que suelen ser 4KiB en casi todos los casos). Yo la suelo dejar por defecto.
Y al hilo del siguiente ejemplo:
Ludvik escribió:Pongamos archivos de 100Mb, en una partición de 500Gb. Y que cada archivo, por desgracia, coincida que siempre desaprovechan un cluster prácticamente vacío (porque un solo archivo no puede desaprovechar varios, ¿o sí...?). Son 5.000 archivos, en teoría. Pero con un tamaño de unidad de asignación de 4kb, se perderían 20Mb. Con 32kb, serían 160Mb. En ese caso, ¿los 140Mb de diferencia son más significativos que lo que ganarías de rendimiento y evitarías de fragmentación?
...de rendimiento no se gana prácticamente nada, y la fragmentación no debería cambiar significativamente dado que los archivos grandes van a estar contiguos igualmente salvo que el disco esté tan lleno que no haya más remedio que trocearlos, incluso si la unidad de asignación es pequeña. Ese problema de fragmentación si el disco está muy lleno lo vas a tener igualmente con una unidad de asignación mayor, de hecho con el disco menos lleno, porque será más difícil que haya trozos libres contiguos mayores que la unidad de asignación.
En protocolos con más overhead y más latencia, pienso en TCP/IP por ejemplo, sí que tiene sentido subir el tamaño de algo parecido a esto como es la MTU (de 1500 bytes a 4000 o 9000, "jumbo packets" que se llaman) y aun así a veces es contraproducente en rendimiento. Yo uso jumbo frames en el NAS de mi trabajo, porque es habitual trabajar con archivos relativamente grandes, pero en el de casa que tengo "un poco de todo" no, por esto mismo.
Saludos