Wie kann ich eine kleinere Blockgröße für eine Ramdisk festlegen?

Ich verwende eine Ramdisk, um ein Git-Repository mit vielen (> 60 KB) kleinen (~ 200 Byte) Dateien zu beschleunigen.

Gibt es eine Möglichkeit, eine Ramdisk mit einer kleineren Blockgröße zu erstellen?

Wie geben Sie jetzt die Ramdisk an?
diskutil erasevolume HFS+ "ramdisk"hdiutil attach -nomount ram://1165430
Ich würde mir die Größenänderung von hdiutil ansehen - hilft eine Ramdisk in Ihrem Szenario jedoch wirklich - testen Sie die Geschwindigkeit, da das Festplatten-Caching möglicherweise ausreicht + was passiert, wenn osx oder etwas anderes abstürzt, verlieren Sie nicht Arbeit und besiegen das Objekt der Versionskontrolle?
Ich kann derzeit das Git-Repository unter 10.7 aufgrund einer Zeitüberschreitung (> 3 Stunden) nicht festschreiben, während ich genau die gleichen Vorgänge in 10 Minuten auf einem Standard-Ubuntu VirtualBox-Image abschließen kann, das auf demselben Computer ausgeführt wird.
In diesem Fall wird das Versionierungssystem nicht besiegt, da ich einige teure Rebases und Versionsvergleiche durchführen möchte.

Antworten (1)

Zusammenfassung: Ich glaube nicht, dass dies möglich ist, zumindest nicht für Volumes, die als HFS+ formatiert sind.

Mein derzeitiges Verständnis ist, dass HFS+ seine Dateisystemblockgröße (getrennt von der Blockgröße des physischen Geräts) gemäß einer festen Standardzuweisungsblockgröße auswählt , die nicht manuell außer Kraft gesetzt werden kann.

HFS+-Standardzuweisungsblockgröße

Diskussionen in anderen Foren von 2002 bis 2011 ( unter anderem CompGroups , MacRumors ) schlagen vor , newfs_hfs(8) zu verwenden , das eine -b <blocksize>Option hat, um die Blockgröße beim Erstellen eines neuen Dateisystems manuell festzulegen.

Ich habe versucht, newfs_hfsverschiedene Arten von Partitionen zu verwenden, sowohl auf .dmg-Diskimages als auch auf physischen SATA-Festplatten (über die SATA<->USB-Schnittstelle) und mit verschiedenen Dateisystemen (HFS+, FAT16, FAT32). Als ich mit verschiedenen -b-Größen newfs_hfslief (512, 1024, 2048, 4096, 8192,) tatsächlich hat es Erfolg beim Erstellen der Dateisysteme mit den angegebenen Blockgrößen gemeldet. Ich konnte diese Volumes normal mounten und lesen/schreiben.

Aber wenn ich die Testvolumes mit diskutil info <diskname>(wo <diskname>ist disk1, disk4 oder was auch immer Ihre Festplatte ist) untersuche, sehe ich immer:

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

Beachten Sie, dass das Ende der newfs_hfs(8)Manpage diesen Leckerbissen enthält:

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.

Es scheint, dass OS X 10.8 (und wahrscheinlich 10.7 und vielleicht frühere Versionen) alle zu erstellenden Blockgrößen newfs_hfszugunsten von Standardgrößen außer Kraft setzen, die von einer höheren Autorität auferlegt werden. (??)


Ein Artikel, auf den ich gestoßen bin, schlug vor, das Software-RAID-Dienstprogramm von OS X zu verwenden, um einen RAID-Spiegel zu erstellen. Mit Software-RAID kann man eine RAID- Stripe- Größe angeben , aber da dies im Allgemeinen darauf ausgerichtet ist, den Durchsatz für große Dateien und nicht für kleine Dateien zu verbessern, beträgt die minimale RAID-Stripe-Größe meiner Meinung nach 4 KB – für Ihre Zwecke nicht nützlich.