Saltar al contenido

Android: ¿cuándo debería ejecutarse fstrim?

Solución:

El artículo al que se hace referencia en la respuesta de @ mattm está un poco desactualizado. IdleMaintenanceService se eliminó en Lollipop, las cosas han cambiado. En Pie, programado fstrim se activa desde StorageManagerService (1) para MountService (2):

si el dispositivo está vivo en medianoche + inactivo, fstrim se ejecuta en el siguiente disponible cargando + inactivo tiempo

* (3)

Montar llamadas de servicio StorageManager que a su vez llama Vold hacer fstrim.

Si se pierde el horario porque las condiciones no se cumplen y fstrim no ha corrido para el final 3 days (4), se forzará durante el inicio del dispositivo si se reinicia el dispositivo. SystemServer (5), PackageManager (6), StorageManager (7) y Vold (8) estan involucrados.

En cada caso, el archivo /data/system/last-fstrim (9) (desde Lollipop) se actualiza (10), para que pueda comprobar su marca de tiempo (requiere root) para saber cuando fstrim fue la última vez que se ejecutó.

Si quieres hacer TRIM manualmente, use la herramienta de línea de comandos de Android sm fstrim (requiere root o adb shell). Anteriormente esto era vdc fstrim dotrim pero agregado a Storage Manager en Oreo (11) y eliminado de vold en Pie (12).

Para enviar FITRIM ioctl solo para el (los) sistema (s) de archivos seleccionado (s), use fstrim herramienta (requiere root); un subprograma de busybox.


¿Y si no tienes root?

Y sospechas que el programado fstrim se ha perdido durante más de 3 días, reinicie el dispositivo, fstrim será forzado (desde Lollipop 5.1 (13)). Sencillo.

Las aplicaciones no pueden TRIM sin root; vea esta respuesta.


¿CON QUÉ FRECUENCIA SE DEBE EJECUTAR EL TRIM?

La memoria flash (incluidas las SSD, eMMC, tarjetas SD, memorias USB, etc.) tiene un número limitado de ciclos de programación / borrado antes de que muera. Pero a diferencia de los discos duros, los datos no se pueden sobrescribir simplemente en la memoria flash, primero se deben borrar, lo que se logra mediante Garbage Collection.

Ahora si hacemos demasiado fstrim, esto hará que GC frecuente en segundo plano consuma preciosos P/E ciclos y por lo tanto reduciendo la vida. Si no lo hacemos fstrim en absoluto, podría haber GC innecesario (de datos ya eliminados), además de que las operaciones de escritura se volverán demasiado lentas con el tiempo porque Erase tendrá que realizarse antes de sobrescribir los datos, que tiene una latencia muy superior en comparación con Program operación.

Entonces necesitamos un equilibrio entre ambos.

También hay otros factores, por ejemplo, si el controlador eMMC admite over provisioning, qué tan efectivo es en la programación de GC en segundo plano, nivelación del desgaste y administración de la amplificación de escritura, etc.

Entonces, a menos que tenga la hoja de datos del eMMC de su teléfono y esté seguro de lo que está haciendo, mejor es dejar el fstrim al sistema operativo. En PC (14):

Ejecutando fstrim con frecuencia, o incluso usando mount -o discard, podría afectar negativamente la vida útil de los dispositivos SSD de baja calidad. Para la mayoría de los sistemas de escritorio y servidor, se requiere una frecuencia de recorte suficiente. una vez por semana.

Pero esto puede variar según las situaciones.

RELACIONADO:

  • Codificación de SSD
  • ¿Por qué TRIM no es compatible con la partición “/ data” cifrada?

El comentario de Unforgettableid incluyó un artículo de AnandTech que describe las condiciones bajo las cuales se supone que se ejecuta fstrim:

Aprendí un poco más sobre las condiciones subyacentes cuando Android 4.3 recortará los sistemas de archivos, ya que antes no estaba completamente claro. El marco de Android enviará un evento de “inicio de la ventana de mantenimiento inactivo” que MountService escucha y luego invoca vold a los sistemas de archivos fstrim cuando se cumplen algunas condiciones: el dispositivo no se ha tocado durante más de una hora, sin mantenimiento inactivo El evento de ventana se ha enviado en 24 horas y el dispositivo está descargado con un 80% de batería o encendido con un 30% de batería. El objetivo es que fstrim se ejecute aproximadamente una vez cada 24 horas si tiene la costumbre de enchufar el dispositivo para cargarlo todas las noches.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *