Optimale Clustergröße für zufällige E / A

1438
Jim

Ich bin speziell an der Antwort für NAND-Speicher (SD-Karten, Memory Sticks) interessiert.

Ich habe einen Windows 7-Laptop, auf dem ich zwei VMs innerhalb von VMWare sowie mehrere Programme im Host-Betriebssystem ausführen kann. Der Zugriff auf VM-Festplatten ist sehr zufällig und ich habe eine ausgezeichnete Leistungsverbesserung meines Systems durch die Verwendung eines 16-GB-Memory-Sticks mit ReadyBoost erzielt. Ich habe den Flash mit exFAT formatiert, damit ich eine 16 GB-Sfcache-Datei zuordnen konnte. Ich habe eine Clustergröße von 32 MB verwendet, aber ich bin nicht sicher, ob dies optimal ist.

Ich verstehe die Clustergröße so, dass größere Cluster zu Platzverschwendung für kleinere Dateien führen, aber die Lesegeschwindigkeit erhöhen und die Verwendung von Filetables verringern, wenn Sie hauptsächlich große Dateien haben. Mir wurde jedoch klar, dass ReadyBoost nur für zufällige E / A und nicht für sequenzielle E / A hilft. Ich fragte mich, ob eine kleinere Clustergröße für zufällige E / A und große Clustergröße für sequentielle E / A besser wäre.

Ich habe einige IO-Tests auf dem 16-GB-Stick durchgeführt.

Die Bilder zeigen die Ergebnisse für Clustergrößen von: 1kB, 4kB, 8k, 32 MB.

Optimale Clustergröße für zufällige E / A

Optimale Clustergröße für zufällige E / A

Optimale Clustergröße für zufällige E / A

Optimale Clustergröße für zufällige E / A

1k hatte die schlechteste zufällige I / O-Geschwindigkeit, während 4k die beste war (nur geringfügig langsamer als 8k für sequentielle I / O, möglicherweise innerhalb der Fehlerspanne). Nicht sicher, wie diese Ergebnisse interpretiert werden sollen. Ist es möglich, dass die Hersteller ihr Gerät für die Standardgröße der Windows-Zuordnungseinheiten optimiert haben?

4

1 Antwort auf die Frage

1
mdpc

Ich persönlich würde mich nicht darum kümmern, da Abweichungen von der Standardformatierung fast immer Probleme verursacht haben, wenn auch nicht sofort in Bezug auf Zuverlässigkeit und Support. Abweichungen von einem Standard sollten gut verstanden werden, da Codepfade für diese Art von Dingen nicht unbedingt genauso gut getestet werden wie für den Standardfall.

Wenn Sie keine echte Notwendigkeit haben, würde ich nicht experimentieren, vor allem, wenn Sie Daten langfristig speichern möchten.

Langfristige Speicherung macht mir keine Sorgen, ich möchte nur den einen Anwendungsfall optimieren: Direktzugriff. War auch neugierig auf die unterschiedlichen Ergebnisse. Jim vor 9 Jahren 0