Imaginad que nos pusiésemos a comparar el Google Pixel con el Lenovo Moto Z: son dos telefonazos, de eso no hay duda, y cada uno tiene sus claras ventajas: Google Assistant y la cámara son fortalezas del Pixel, mientras que el Moto Z tiene esa interesante capacidad de expandir sus opciones con los Moto Mods. Uy, se nos olvidaba algo: el Moto Z le da patadas al Pixel en su sistema de ficheros.
¿Sistema de ficheros? ¿Qué es eso del sistema de ficheros? Pues es ese componente software que es especialmente responsable de que el almacenamiento interno de nuestros smartphones se comporte mejor o peor, sobre todo alargo plazo. Los responsables de Lenovo han hecho un gran trabajo aquí, como demuestra un análisis técnico que debería servir como ejemplo de que este apartado es más relevante de lo que parece.
El almacenamiento como talón de Aquiles
Es lo que hizo un usuario en su blog sobre el rendimiento de dispositivos móviles. Según sus análisis, uno de los apartados que más condicionan el uso de un smartphone —sobre todo a largo plazo— es el sistema de ficheros utilizado en las distintas particiones de dispositivos Android, y en concreto la velocidad con la que se comportan las llamadas escrituras 4k aleatorias.
Este tipo de operación permite evaluar el comportamiento de un sistema de almacenamiento, y medios como AnandTech revelaban cómo el iPhone 7 apenas lograba 2,33 MB/s en este tipo de escrituras mientras que el Google Pixel XL rondaba los 3,35 MB/s en este apartado.
En esos análisis ya quedaban las diferencias entre distintos dispositivos: de repente detectábamos como un dispositivo como el Huawei Honor 8 superaba de largo a los Pixel XL o los Galaxy S7 Edge en este apartado, y lograba 32,05 MB/s en la prueba AndroBench 5.0 para escrituras aleatorias 4K.
La importancia de las escrituras 4K aleatorias
¿Por qué son importantes estas pruebas? Pues porque aunque cuando uno empieza a usar estos dispositivos todo va como una seda y la fluidez es fantástica, la memoria NAND en la que se basan los sistemas de almacenamiento se va degradando.
Contar con un comportamiento mejor en estas escrituras garantiza que a largo plazo nuestro teléfono "no se volverá lentorro" (o al menos no tanto) por ese uso continuado y esa degradación. ¿Cómo es posible, cuando teóricamente el hardware del Honor 8 es más modesto? La respuesta no está en el hardware, sino en el software.
El análisis de este usuario reveló las causas del buen comportamiento de un dispositivo como el Moto Z frente al Google Pixel. En las gráficas de rendimiento se podía comprobar la latencia en relación al porcentaje de operaciones de entrada/salida completadas (p50 sería que el 50% de las operaciones de E/S se completan en un tiempo X), y dejan claro rápidamente cómo están las cosas en este ámbito.
En esa gráfica se muestran los valores p50, p90 y p99, y como indica el autor del análisis, el valor de mediana del Moto Z es de 0,5 ms, mientras que el del Pixel es de 3,3 ms, o lo que es lo mismo, casi siete veces superior. Especialmente preocupante es la latencia en la medición p99, que fue especialmente alta. Garantizar que se completaban esas operaciones llevaba más tiempo del deseable. Y el problema, asegura el autor, se agravará con el tiempo.
Aprendiendo a formatear las particiones Android
El secreto del Moto Z no está como decíamos en sus componentes hardware, sino en los sistemas de ficheros utilizados en las distintas particiones de sistema del dispositivo.
Las comparaciones entre ambos dispositivos dejaban claro que en Lenovo habían trabajado mucho este apartado y habían elegido opciones muy interesantes para formatear esas particiones.
El primer ejemplo lo tenemos en el punto de montaje /storage/emulated/0, que es la base del sistema del almacenamiento. En los nuevos dispositivos las diferencias entre el almacenamiento flash interno (la capacidad que nos vende le fabricante) y el externo (una tarjeta microSD) se han difuminado. De hecho cuando el fabricante no ofrece ranura microSD se sigue proporcionando la emulación de un sistema de almacenamiento externo para que se pueda habilitar la compatiblidad con viejas aplicaciones que "buscan" ese sistema de almacenamiento.
En el Pixel ese punto de montaje se monta con el sistema de ficheros fuse, una "mala opción" porque consume más CPU y retrasa las operaciones de E/S en un 30%. En el Moto Z encontramos el sistema de ficheros esdfs, que se comporta mejor tanto en eficiencia como en velocidad y que es un sistema de ficheros derivado de Wrapfs, un SF "apilable".
El secreto está en F2FS
Más interesante aún es el sistema de ficheros utilizado en la partición /data, que en los Google Pixel está formateada con el tradicional ext4, muy popular en particiones de distribuciones Linux. En lugar de eso en el Moto Z se utiliza f2fs, un nuevo sistema de ficheros desarrollado por Samsung que simplifica las operaciones de escritura, y que de hecho necesita un 50% menos de ellas que ext4. Según el autor, f2fs permite que los Moto Z tengan un rendimiento 2 veces superior y el doble de vida útil de la memoria NAND respecto a los Pixel. O dicho de otro modo: tu Moto Z envejecerá mucho mejor que el Google Pixel.
La utilización de ese sistema de ficheros se hace además con parámetros especiales como nobarrier, una opción ya disponible en el sistema de ficheros XFS creado por Silicon Graphics para sus estaciones de trabajo en los años 90. La idea es la implementar una solución de caché en la RAM para acelerar todas esas escrituras, y este parámetro ayuda a que esta partición se comporte aún mejor, sobre todo a largo plazo.
Ojo, porque estas ventajas no se dan en todos los escenarios (de hecho, si nos salimos del mundo de los móviles ext4 sigue siendo fantástico para formatear nuestros SSDs), pero parece evidente que al menos en el ámbito de las memorias NAND utilizadas en smartphones estas pruebas demuestran que este tipo de opción da muchas ventajas interesantes.
Luces (y alguna sombra) de F2FS
Stan Dmitriev, de la empresa Tuxera —especializada en este tipo de desarrollos— explicaba en una entrevista en XDA cómo este sistema de ficheros Open Source era interesante por su diseño espcífico para la arquitectura de almacenamiento flash. Según sus datos, Motorola fue el primero en aprovechar F2FS, pero otras como OnePlus o Huawei siguieron esos pasos después.
Hay aquí novedades interesantes en cuanto a dispositivos que lo integran, porque Google parece haber dado su bendición y de hecho aprovecha este sistema de ficheros en el Pixel 3, algo que le permite ofrecer mayor rendimiento que el Pixel 2 en este ámbito del almacenamiento según algunas pruebas.
Las ventajas de F2FS —documentadas en un estudio presentado en el evento Usenix en 2015— son importantes para los sistemas de almacenamiento usados en smartphones (normalmente eMMC o UFS), ya que en ellas proporciona mejor rendimiento del sistema de ficheros. "Arranca más rápido (por las superiores velocidades de lectura)", indicaba, pero además destacaba que las escrituras también son más rápidas, lo que permite "grabar vídeos en 4K, vídeos a cámara super lenta o vídeos de 360 grados. Además, la latencia entre el sistema y el almacenamiento es muy baja, lo que la animación de apertura y el lanzamiento de las aplicaciones da la sensación de ser mucho más fluido".
Entre las desventajas están la degradación del rendimiento a largo plazo, aunque este problema afecta también a otros sistemas de ficheros. La forma en la que utilizamos nuestros dispositivos, explicaba, hace que a la larga estén llenos de datos y se sigan produciendo muchas escrituras, lo que implica que "puede producirse la fragmentación del almacenamiento, haciendo que cada operación de lectura o escritura se vuelva más y más lenta".
Hay otro pequeño problema adicional, y es que el sistema de ficheros F2FS hace necesario reservar algo más de espacio para el mantenimiento de las cachés y del almacenamiento en sí. Según Dmitriev el estado actual de este sistema de ficheros es fantástico para entornos en los que se producen muchas lecturas a gran velocidad, pero a largo plazo puede haber problemas, lo que hace que según él sea necesario seguir trabajando en su evolución.
¿Por qué no está en más dispositivos?
A la vista de estos resultados, parece claro que F2FS resulta más interesante que el tradicional EXT4 a la hora de ser usado como sistema de ficheros en nuestros móviles. ¿Cuál es la razón?
Aparentemente, los propios desarrolladores de Android están prestando atención a F2FS, pero han encontrado algunas pegas a esta alternativa. Como explicaba en un AMA de Reddit Tim Murray, uno de los responsables de Android, "estamos estudiándolo".
Sin embargo Murray también explicaba que "ahora mismo no es realmente apto para un dispositivo de gama alta por la falta de soporte para el cifrado hardware nativo. Un dispositivo que permita cifrar el sistema de ficheros tiene mejor alternativa en EXT4 u ese bloque de cifrado hardware dedicado", no como ocurre con F2FS que impone una carga adicional a la CPU para realizar ese cifrado del sistema de ficheros. Aún así, confesaba este ingeniero "seguiremos experimentando con él".
Así pues, será mejor que vayamos prestando atención a los sistemas de ficheros elegidos por los fabricantes para sus dispositivos: de ellos depende que estos smartphones comiencen a comportarse peor, con tiempos de respuesta y fluidez sensiblemente peores que cuando los compramos y empezamos a utilizarlos.
En Xataka | UFS 2.0 y DDR4, así es como los cambios en memoria van a mejorar el rendimiento de tu próximo smartphone
Ver 34 comentarios