¿Cómo puedo especificar un tamaño de bloque más pequeño para un Ramdisk?

Uso un ramdisk para acelerar un repositorio git con muchos (> 60k) de archivos pequeños (~200 bytes).

¿Hay alguna manera de crear un ramdisk con un tamaño de bloque más pequeño?

¿Cómo se especifica el ramdisk ahora?
diskutil erasevolume HFS+ "ramdisk"hdiutil attach -nomount ram://1165430
Vería el cambio de tamaño de hdiutil; sin embargo, ¿un ramdisk realmente ayuda en su escenario? Pruebe la velocidad, ya que el almacenamiento en caché del disco podría ser suficiente.
Actualmente no puedo confirmar el repositorio de git en 10.7 debido a un tiempo de espera (> 3 h), mientras que puedo terminar exactamente las mismas operaciones en 10 minutos en una imagen estándar de Ubuntu VirtualBox que se ejecuta en la misma máquina.
En este caso, no anula el sistema de control de versiones, ya que quiero hacer algunas comparaciones de versión y reorganización costosas.

Respuestas (1)

Resumen ejecutivo: no creo que esto sea posible, al menos no para volúmenes formateados como HFS+.

Mi entendimiento actual es que HFS+ elige el tamaño de bloque de su sistema de archivos (separado del tamaño de bloque del dispositivo físico) de acuerdo con un tamaño de bloque de asignación predeterminado fijo que no se puede anular manualmente.

Tamaño de bloque de asignación predeterminado de HFS+

Las discusiones en otros foros que abarcan desde 2002 hasta 2011 ( CompGroups , MacRumors , entre otros) sugieren usar newfs_hfs(8) , que tiene una -b <blocksize>opción para establecer manualmente el tamaño del bloque al crear un nuevo sistema de archivos.

Intenté usar newfs_hfsen varios tipos de particiones, tanto en imágenes de disco .dmg como en discos duros SATA físicos (a través de la interfaz SATA<->USB) y con varios sistemas de archivos (HFS+, FAT16, FAT32). Cuando corría con diferentes tamaños newfs_hfs-b (512, 1024, 2048, 4096, 8192,) de hecho reportó éxito en la creación de sistemas de archivos con los tamaños de bloque especificados. Podría montar y leer/escribir estos volúmenes normalmente.

Pero cuando examino los volúmenes de prueba con diskutil info <diskname>(dónde <diskname>está disk1, disk4 o cualquiera que sea su disco), siempre veo:

Total Size:               104.9 MB (104857600 Bytes) (exactly 204800 512-Byte-Blocks)
Volume Free Space:        102.4 MB (102385664 Bytes) (exactly 199972 512-Byte-Blocks)
Device Block Size:        512 Bytes

Tenga en cuenta que el final de la newfs_hfs(8)página del manual incluye este dato:

HISTORY
The newfs_hfs command appeared in Mac OS X Server 1.0 .  As of Mac OS X
10.6, this utility no longer generates HFS standard file systems.

Parecería que OS X 10.8 (y probablemente 10.7, y quizás versiones anteriores) anula cualquier tamaño de bloque que newfs_hfspretenda crear, a favor de los tamaños predeterminados impuestos por una autoridad superior. (??)


Un artículo que encontré sugería usar la utilidad RAID de software de OS X para crear un espejo RAID. El software RAID permite especificar un tamaño de banda RAID , pero como esto generalmente está orientado a mejorar el rendimiento de los archivos grandes en lugar de los pequeños, creo que el tamaño mínimo de la banda RAID es de 4 KB, lo que no es útil para sus propósitos.