TRIM automático versus TRIM manual

13

Actualmente estoy tratando de descubrir cómo recortar con mi nuevo TP y me preguntaba sobre la diferencia del recorte manual / en línea.

He aquí mi arreglo:

ThinkPad T430s con SSD Samsung 830, 128GB y Xubuntu 12.10, aquí hay algunas salidas para verificar si el ajuste funcionará en mi sistema (lo obtuve de aquí: http://wiki.ubuntuusers.de/SSD/TRIM )

root@eike-tp:~# sudo hdparm -I /dev/sda | grep -i TRIM
   *    Data Set Management TRIM supported (limit 8 blocks)

Primero, probé el recorte en línea: ¿Cómo habilitar TRIM?

mi fstab con descarte insertado:

UUID=d6c49c17-a4f1-466c-9f7e-896c20db3bba /  ext4  discard,noatime,errors=remount-ro  0  1
# swap was on /dev/sda5 during installation
UUID=a0322f5f-c6c1-4896-863f-668f0638d8cf none  swap  sw  0   0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Traté de probar si funciona (pero no obtengo ceros cuando lo intento con / dev / sda), pero descubrí que este método solo es posible con SSD tipo 2 y parece que tengo el tipo 3. Así que No sé si funciona o no.

Ubuntuwiki (primer enlace) recomienda el recorte manual, así que configuré un cronjob diario en lugar de descartarlo:

#!/bin/sh
LOG=/var/log/batched_discard.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG

El artículo wiki sugiere semanalmente o diariamente. Ahora a mis preguntas:

¿Con qué frecuencia ejecuta el recorte automático? ¿Con qué frecuencia se recomienda? ¿Recorte en línea versus manual?

Gracias por tu ayuda

Eike Cochu
fuente

Respuestas:

4

La diferencia entre el recorte automático y manual es que el recorte automático (usando la discardopción de montaje) recorta los bloques liberados en sincronización después de eliminar cualquier archivo, mientras que el recorte manual (usando fstrim) recorta todo el espacio libre a la vez.

Pruebas

Una forma de probar si el recorte automático funciona sería crear y eliminar un archivo grande:

user@host:/somewhere$ dd if=/dev/urandom bs=1M count=100 of=bigfile
user@host:/somewhere$ sync
user@host:/somewhere$ rm bigfile
user@host:/somewhere$ sync

Si el descarte automático funciona, recortar manualmente nuevamente no recortará muchos bloques, ya que ya deberían haberse recortado. Ejecute sudo discard -ven su sistema de archivos y vea cuántos bloques se recortan.

Recomendación

En cuanto a lo que se recomienda: en mi experiencia, el recorte automático mata el rendimiento. Sin embargo, esto probablemente depende del hardware; Puede estar bien en su disco.

Si usa el ajuste manual, en cuanto a la frecuencia, piense en la velocidad a la que escribe los datos en su carga de trabajo típica, en comparación con la cantidad de espacio libre en su SSD. Desea recortar con suficiente frecuencia, antes de que su disco se llene de datos eliminados. Si su SSD es mayormente espacio libre o la carga de trabajo de su disco es liviana, debería ser suficiente recortar ocasionalmente (semanalmente o incluso más). Si su SSD está casi llena o, por ejemplo, edita archivos de video con frecuencia, deberá recortar más a menudo.

Caracol mecánico
fuente
2

No soy ingeniero de almacenamiento y tengo mis propias preocupaciones relacionadas , pero puedo hacer una sugerencia posiblemente útil sobre la programación. Estoy bastante seguro de que TRIM no causa ningún desgaste preocupante en el SSD. Es solo la limpieza que su disco tendrá que sufrir eventualmente, antes de que pueda comenzar a reciclar bloques. El mejor programa para el TRIMming por lotes dependerá del uso; una función de la frecuencia de escritura y el espacio libre, debería pensar. Eso en mente, desconectaría el trabajo cron y fstrim -va mano durante varios días.

Creo que el truco es diseñar un programa en el que el TRIM por lotes prepare el SSD para escribir antes de que los bloques usados ​​tengan que reciclarse para cumplir con una operación de escritura normal, lo que perjudica el rendimiento. Espere 24 horas y fstrim. Si afirma haber recortado muchos menos bloques que el espacio libre, es probable que esté bien atendido TRIMming por lotes con menos frecuencia que eso.

represa
fuente
2

Recorto mi SSD en cada arranque. Hice un archivo sh que se llama 20 segundos después del inicio. Opté por mostrar la salida de fstrim en una notificación del sistema en lugar de un archivo de registro.

primero crea el trim.sharchivo en tu ~/bindirectorio

#! /bin/sh
notify-send "TRIM" "$(sudo fstrim -v /)"

Ahora debemos otorgarle al usuario privilegios para ejecutar fstrim, por lo que no necesitamos ingresar una contraseña. Abra su archivo sudoers con visudo y agregue la siguiente línea:

yourusername  ALL=(ALL) NOPASSWD: /sbin/fstrim

Si incluye su home/yourusername/bincarpeta en la $PATHsuya, también puede recortar manualmente en el terminal con el comando 'recortar' sin la necesidad de una contraseña.

Ahora puede agregar su secuencia de comandos a las aplicaciones de inicio y especificar un retraso. Debe cerrar sesión / iniciar sesión nuevamente para que se cargue su nueva entrada de sudoers.

Kasper Taeymans
fuente