Ubuntu no TRIM SSD por defecto, por qué no y cómo habilitarlo usted mismo
Ubuntu quiere habilitar TRIM para SSD por defecto en Ubuntu 14.04. En otras palabras, Ubuntu ya no usa TRIM, por lo que su SSD se está ralentizando con el tiempo. Pero, ¿por qué Ubuntu no está usando TRIM??
Es probable que esta noticia sea una sorpresa para muchas personas, quienes asumieron que Ubuntu y otras distribuciones de Linux ya estaban usando TRIM. TRIM evita que los SSD se ralenticen con el tiempo y es una parte necesaria del mantenimiento de SSD.
¿Por qué TRIM es importante?
Hemos cubierto por qué TRIM es importante antes. Cuando elimina un archivo en un disco rígido magnético antiguo, la computadora simplemente marca ese archivo como eliminado. Los datos del archivo se guardan en el disco duro, por eso los archivos eliminados se pueden recuperar. La computadora eventualmente sobrescribirá los archivos eliminados cuando sobrescriba sus sectores con datos nuevos.
Las unidades de estado sólido (SSD) funcionan de manera diferente. Cada vez que escribe un archivo en un SSD, la computadora primero debe borrar cualquier dato de los sectores en los que está escribiendo los datos. No puede simplemente "sobrescribir" los sectores en una sola operación, primero debe eliminarlos y luego escribir en los sectores vacíos..
Esto significa que un SSD disminuirá con el tiempo. Escribir a los sectores del SSD será rápido la primera vez. Después de eliminar algunos archivos e intentar escribir en él nuevamente, tomará más tiempo. Esta es una gran parte de la razón por la que el Nexus 7 original de Google se desaceleró tanto con el tiempo. Google solucionó esto implementando TRIM en Android 4.3. (Android también usa el kernel de Linux).
Con TRIM habilitado, el sistema operativo le informa a la SSD cada vez que elimina un archivo. La unidad puede borrar los sectores que contienen el contenido del archivo, por lo que escribir en los sectores será rápido en el futuro.
En otras palabras, si no usa TRIM, su SSD disminuirá con el tiempo. Es por eso que los sistemas operativos modernos, incluidos Windows 7+, Mac OS X 10.6.8+ y Android 4.3+, utilizan TRIM. TRIM se implementó en Linux en diciembre de 2008, pero Ubuntu no lo está utilizando de forma predeterminada.
¿Por qué Ubuntu no hace TRIM por defecto?
La verdadera razón por la que Ubuntu no hace TRIM SSDs es que la implementación de TRIM en el kernel de Linux es lenta y produce un rendimiento deficiente en el uso normal.
En Windows 7 y 8, Windows envía un comando TRIM cada vez que elimina un archivo, y le dice a la unidad que elimine inmediatamente los bits del archivo. Linux admite esto cuando los sistemas de archivos se montan con la opción "descartar". Sin embargo, Ubuntu y otras distribuciones no lo hacen de manera predeterminada por razones de rendimiento.
La wiki de OpenSUSE contiene información detallada de un desarrollador que está más familiarizado con el kernel de Linux que nosotros. Es un poco anticuado, pero es probable que siga siendo cierto cuando se trata de rendimiento:
“La implementación del kernel de recorte en tiempo real en 11.2, 11.3 y 11.4 no está optimizada. La especificación. pide un ajuste que admita una lista vectorizada de rangos de recorte, pero a partir del kernel 3.0 el recorte solo es invocado por el kernel con un único rango de descarte / recorte y con los SSD actuales de mediados de 2011, esto ha demostrado que causa una degradación del rendimiento en lugar de un aumento del rendimiento. Hay algunas razones para utilizar el soporte de descarte en tiempo real de los kernels con los kernels anteriores a 3.1. No se sabe cuándo se optimizará la funcionalidad de descarte de los kernels para que funcione de manera beneficiosa con las SSD de la generación actual ". [Fuente]
En otras palabras, el kernel de Linux maneja dichos comandos TRIM en tiempo real de una manera lenta y sin optimizar. Habilitar TRIM de manera similar a como lo hace Windows, es decir, usar la opción "descartar", hace que el sistema se vuelva más lento que si TRIM no se usara en absoluto. Ubuntu y otras distribuciones de Linux no habilitan el "descarte" de forma predeterminada para sus sistemas de archivos, y usted tampoco debería.
Hay otra manera
Debido a que la operación TRIM de "descarte" en tiempo real del kernel de Linux no funciona bien, la mayoría de las distribuciones de Linux, incluido Ubuntu, no usan TRIM automáticamente. Android tampoco usó TRIM hasta Android 4.3.
Pero hay otra forma de usar TRIM. En lugar de simplemente emitir el comando TRIM cada vez que se elimina un archivo, se puede usar la función FITRIM. Esto sucede a través del comando fstrim. Esencialmente, el comando fstrim analiza el sistema de archivos e informa a la unidad qué bloques ya no son necesarios, por lo que la unidad puede descartarlos. Esto convierte a TRIM de una operación en tiempo real en una tarea programada. En otras palabras, fstrim puede realizar TRIM como un trabajo cron. No hay razón para no hacer esto. No ralentizará nada; Es solo otra tarea de limpieza del hogar que el sistema debe realizar en un horario.
De hecho, este es el enfoque que Google tomó con Android 4.3. Android simplemente ejecuta una tarea fstrim ocasionalmente para TRIMAR el sistema de archivos, solucionando el problema que ralentizó todos esos Nexus 7s originales.
Ubuntu también está considerando habilitar TRIM automáticamente haciendo que el sistema ejecute regularmente fstrim. Esperemos que esto sea parte de Ubuntu 14.04 para que los usuarios de Ubuntu no se vean obligados a lidiar con la degradación del rendimiento de SSD o ejecuten fstrim por su cuenta.
Cómo habilitar TRIM
No recomendamos que monte sus sistemas de archivos con la operación de "descartar", ya que esto probablemente resultará en un rendimiento más lento en el uso normal. Sin embargo, puede usar TRIM usted mismo ejecutando ocasionalmente el comando fstrim o creando su propio cronjob que ejecuta fstrim en un horario.
Para TRIMAR su SSD en Ubuntu, simplemente abra una terminal y ejecute el siguiente comando:
sudo fstrim -v /
Puede ejecutar el comando anterior de vez en cuando para evitar la degradación del rendimiento en los SSD. La frecuencia con la que lo ejecute dependerá de la frecuencia con la que se eliminen los archivos de su SSD. Verá un error si intenta ejecutar el comando con una unidad que no es compatible con TRIM.
Si desea ejecutar TRIM regularmente, simplemente puede crear un cronjob que ejecute el comando fstrim por usted. Aquí le indicamos cómo hacer un trabajo cron de barebones que lo hará automáticamente..
Primero, ejecute el siguiente comando para abrir el editor de texto nano con permisos de raíz:
sudo nano /etc/cron.daily/fstrim
Escriba el siguiente código en el archivo:
#! / bin / sh
fstrim /
Guarde el archivo presionando Ctrl + O y presione Entrar para confirmar. Presione Ctrl + X para cerrar nano después de guardar el archivo.
Por último, ejecute el siguiente comando para hacer que el script sea ejecutable:
sudo chmod + x /etc/cron.daily/fstrim
Ubuntu ahora ejecutará fstrim en un horario, al igual que otras tareas de mantenimiento del sistema.
Tenga en cuenta que TRIM solo es compatible con los sistemas de archivos modernos, por lo que necesitará algo como ext4 y no ext3 o ext2. Si no sabe qué sistema de archivos está utilizando, no se preocupe, se selecciona ext4 de manera predeterminada.
Gran parte de este consejo también se aplica a otras distribuciones de Linux. Mientras que Linux implementó el soporte TRIM en el kernel hace mucho tiempo, parece que su soporte TRIM nunca se ha habilitado de forma predeterminada para usuarios típicos en distribuciones de Linux.
Crédito de la imagen: Mace Ojala en Flickr (recortada)