12 votos

¿Es posible recortar manualmente los bloques no utilizados (espacio libre) de un volumen APFS existente?

Al migrar un MacBook de HDD a SSD, hice una copia a nivel de bloque utilizando dd . Creo que para una óptima vida útil de la flash y el rendimiento, sería el mejor para emitir un TRIM para cada bloque no utilizado en el nuevo sistema de archivos para informar a la controladora SSD (por lo que no va a confundir a mi dd copia con un archivo grande que ocupa todo el disco).

¿Es posible TRIM el espacio libre manualmente para un volumen APFS en MacOS (como FreeBSD's trim o de Linux fstrim )? He leído que en HFS+, MacOS fsck tiene un pase de TRIM, por lo que el TRIM puede activarse manualmente ejecutando fsck -fy en modo monopuesto, y uno debería ver un mensaje de "recorte de bloques no utilizados". Pero no es compatible con APFS (lo he probado y no he visto ningún mensaje sobre TRIM).

10voto

user68581 Puntos 11

En APFS, MacOS realiza automáticamente una operación TRIM en el espacio libre del disco en el arranque a través del AFPS Space Manager (spaceman). Por lo tanto, siempre que TRIM esté activado en el sistema (a través de trimforce para SSDs de terceros, ver la respuesta de karolus), no tienes que preocuparte por ello. No hay ningún comando ni necesidad de recortar manualmente los bloques no utilizados.

Verificación

Si quieres verificar personalmente el funcionamiento de TRIM en el arranque, puedes buscar mensajes relacionados con Spaceman en tu registro de arranque.

Ejecute el siguiente comando como Root. Enumera todos los mensajes del kernel ( --predicate "processID == 0" ) desde principios de este mes ( --start $(date "+%Y-%m-01" ) y buscar los mensajes que contengan "spaceman" ( grep spaceman ).

# log show --predicate "processID == 0" \
  --start $(date "+%Y-%m-01") | grep spaceman

Y puedes ver mensajes como estos

2021-01-13 11:54:28.559149+0800 0x1bc      Default     0x0                  0      0    kernel: (apfs) spaceman_trim_free_blocks:3009: scan took 7.102084 s, trims took 6.415750 s
2021-01-13 11:54:28.565684+0800 0x1bc      Default     0x0                  0      0    kernel: (apfs) spaceman_trim_free_blocks:3017: 28059445 blocks free in 247937 extents
2021-01-13 11:54:28.572872+0800 0x1bc      Default     0x0                  0      0    kernel: (apfs) spaceman_trim_free_blocks:3025: 28059445 blocks trimmed in 247937 extents (25 us/trim, 38645 trims/s)
2021-01-13 11:54:28.580121+0800 0x1bc      Default     0x0                  0      0    kernel: (apfs) spaceman_trim_free_blocks:3028: trim distribution 1:25496 2+:47953 4+:92857 16+:41261 64+:17838 256+:22532

Las líneas son demasiado largas para leer, lo he editado ligeramente para hacerlo más corto. Usted debe ver las líneas de registro que menciona "TRIM",

scan took 7.102084 s, trims took 6.415750 s
28059445 blocks free in 247937 extents
28059445 blocks trimmed in 247937 extents (25 us/trim, 38645 trims/s)
trim distribution 1:25496 2+:47953 4+:92857 16+:41261 64+:17838 256+:22532

Como puedes ver, MacOS acaba de recortar 28059445 bloques no utilizados hoy. Asumiendo que APFS utiliza un tamaño de bloque de 4 KiB, significa que el SSD ha descartado 107 GiB de espacio libre. Y sí, coincide aproximadamente con el espacio libre de mi disco. Funciona como se esperaba.

4voto

karolus Puntos 21

Por cnet En el caso de que el TRIM se esté ejecutando (el artículo tiene vídeo), debería poder comprobarlo en Información del sistema > SATA. Si no está disponible, según el artículo, ejecute:

sudo trimforce enable

Aprobarlo requerirá un reinicio, pero deberías poder verificar que ahora está habilitado de nuevo en Información del sistema.

Además, los volúmenes con formato APFS ejecutarán automáticamente TRIM en el arranque, por lo que no se listarán comandos para hacerlo manualmente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X