Extrem langsame Schreibgeschwindigkeit auf verschlüsselte externe Laufwerke auf Mavericks

Das Schreiben auf ein vollständig verschlüsseltes USB-Flash-Laufwerk auf Mavericks ist extrem langsam.

Das Laufwerksmodell, das ich zum Testen verwendet habe, war ein Kingston DataTraveler Ultimate 3.0 G3 (64 GB). Ich habe die Übertragungsgeschwindigkeit getestet, indem ich eine große Datei von/auf ein verschlüsseltes und ein unverschlüsseltes Laufwerk gelesen/geschrieben habe. Getestet habe ich auf einem aktuellen Macbook mit Mavericks und auf einem älteren Rechner mit Mountain Lion. Ich habe das Festplattendienstprogramm verwendet, um das Laufwerk als Mac OS Extended (Journaled) und Mac OS Extended (Journaled, Encrypted) zu formatieren.

MacBook Pro (2013) mit USB 3.0 mit OS X 10.9.2 (13C64)

Schreiben: 86,16 MB/s (verschlüsselt: 0,62 MB/s)
Lesen: 181,66 MB/s (verschlüsselt: 151,15 MB/s)

MacBook Pro (2007) mit USB 2.0 mit OS X 10.8.5 (12F45)

Schreiben: 23,57 MB/s (verschlüsselt: 5,04 MB/s)
Lesen: 36,23 MB/s (verschlüsselt: 37,87 MB/s)

Wie Sie auf der älteren Maschine sehen können, nimmt die Schreibgeschwindigkeit beim Schreiben auf das verschlüsselte Volume deutlich ab, ist aber immer noch etwa zehnmal schneller als auf der neueren Maschine mit Mavericks. Könnte dies ein kürzlich eingeführtes Problem in FileVault oder CoreStorage sein?

Aktualisierung (2014-06-28)

Der USB-Stick scheint von Anfang an einen Hardware-Defekt gehabt zu haben. Ich habe ein Ersatzlaufwerk (gleiches Modell) bekommen, das immer noch nicht die erwarteten Ergebnisse liefert, aber zumindest ist die verschlüsselte Schreibgeschwindigkeit des 2013er MBP jetzt auf dem Niveau des 2007er MBP.

MacBook Pro (2013) mit USB 3.0 mit OS X 10.9.3 (13D65)

Schreiben: 135,41 MB/s (verschlüsselt: 9,29 MB/s)
Lesen: 196,22 MB/s (verschlüsselt: 187,04 MB/s)

MacBook Pro (2007) mit USB 2.0 mit OS X 10.8.5 (12F45)

Schreiben: - MB/s (verschlüsselt: 9,39 MB/s)
Lesen: - MB/s (verschlüsselt: 37,79 MB/s)

Dies lässt jedoch immer noch die Frage offen, warum die verschlüsselte Schreibgeschwindigkeit auf dem USB-Laufwerk auf dem 2013 MBP weniger als zehn Prozent der regulären Schreibgeschwindigkeit beträgt. Ich habe auch die Lese-/Schreibgeschwindigkeiten vor und nach der Aktivierung von FileVault auf der internen SSD des 2013 MBP verglichen und dort konnte ich überhaupt keine Verlangsamung feststellen.

Wow - das normale Lesen/Schreiben und die verschlüsselten Schreibvorgänge sehen gut aus. Aber dieser verschlüsselte Schreibvorgang ist schmerzhaft langsam. Welches Tool misst die MB/s? Können Sie diese Ergebnisse mit Blackmagic (kostenlos auf MAS) reproduzieren?
Ich habe einen einfachen Bash-Einzeiler mit time, ddund verwendet awk. Blackmagic gibt mir die gleichen Ergebnisse: goo.gl/bn32fC (unverschlüsselt) vs. goo.gl/yghyqA (verschlüsselt).
Ich vermute, dass die Lesegeschwindigkeit für das verschlüsselte Volume fehlt, da die Lesedauer kürzer ist als das Durchsatz-Sampling-Intervall von Blackmagic

Antworten (1)

Ich habe das gleiche Problem, von dem ich mir ziemlich sicher bin, dass es auf eine Kombination aus der Art und Weise zurückzuführen ist, wie Schreibvorgänge auf Flash-Speicher funktionieren, und der Art und Weise, wie die Verschlüsselung des Kernspeichers (oder eines gesamten Volumes) funktioniert.

Erstens das Schreibverhalten: Im Gegensatz zu flüchtigem Speicher (das Zeug, das im Speicher Ihres Computers verwendet wird) oder Festplatten, bei denen jedes Bit jederzeit auf 0 oder 1 geschrieben werden kann, hat Flash-Speicher zwei Hauptzustände: geschrieben und gelöscht. Innerhalb von "writed" sind 0 und 1. Wenn Sie in den Flash-Speicher schreiben müssen, müssen Sie einen ganzen Block schreiben, der sich derzeit im gelöschten Zustand befindet. Die Dateisystemsoftware im Betriebssystem weiß möglicherweise, welche Blöcke frei sind, der Controller und der Speicher auf einem Flash-Gerät jedoch nicht. Für "busverbundene" SSDs wurde eine spezielle Methode entwickelt, mit der das Betriebssystem einer SSD mitteilt, Blöcke verfügbar zu machen: Sie heißt TRIM. USB-Protokollstacks unterstützen meines Wissens TRIM nicht. Im Grunde füllt sich der Flash-Speicher also weiter, bis es keine tatsächlich gelöschten Blöcke mehr gibt. An diesem Punkt muss das Dateisystem Blöcke löschen und neu schreiben, indem es sie liest. Einfügen der neuen Daten, Löschen und Zurückschreiben. Aus diesem Grund lässt die Schreibleistung kleiner Dateien auf SSDs im Laufe der Zeit nach.

Interessant sind die besonderen Umstände bei verschlüsselten Volumes: Je nach Funktionsweise der Verschlüsselung kann sie tatsächlich ein ganzes Volume verschlüsseln und alle Blöcke mit scheinbar zufälligen Daten füllen, selbst wenn die Blöcke tatsächlich unbenutzt sind und Nullen enthalten würden. Wenn Sie also FileVault aktivieren (oder anderweitig die Kernspeicherverschlüsselung aktivieren), verbraucht es im Grunde das gesamte Volume und lässt keinen Platz für Schreibvorgänge. Das Dateisystem muss ständig Blöcke lesen, löschen und neu schreiben, damit es sie mit allen verschlüsselten Daten überschreiben kann, die Sie darauf legen möchten.

Nun möchte ich hier sagen, dass dies eine Spekulation ist, die auf einem vernünftigen Verständnis davon basiert, wie die Dinge funktionieren, aber es gibt Leute, die die Details tatsächlich kennen, die meine Erklärung korrigieren oder verbessern können, und ich hoffe, dass sie dies tun werden.

Das klingt in der Tat sehr vernünftig. Ich habe etwas gegraben und es scheint, dass für externe Laufwerke eSATA und Thunderbolt beide TRIM unterstützen. Dies mag für externe SSDs interessant sein, aber wahrscheinlich nicht für USB-Sticks, da Macs keine eSATA-Schnittstellen haben und es nicht so aussieht, als ob erschwingliche Thunderbolt-Thumb-Laufwerke in absehbarer Zeit verfügbar sein werden: goo.gl/sDM1au
Nur für den Fall, dass sich jemand wundert: In der Zwischenzeit besteht meine Problemumgehung darin, ein verschlüsseltes Sparse-Bundle auf dem Laufwerk zu erstellen, das der Kapazität des Laufwerks entspricht. Ich habe keine Benchmarks durchgeführt, aber es fühlt sich ungefähr so ​​an, als würde man unverschlüsselte Daten auf das Laufwerk schreiben.
@StefanSchmidt ein verschlüsseltes Sparse-Bundle wie hier beschrieben? blog.fosketts.net/2015/07/22/…
@BradCupit Ja, aber ich synchronisiere den Inhalt des Sparse-Bundles, nicht das Sparse-Bundle selbst, also mounte ich das Sparse-Bundle mit hdiutil attach, verwende es dann rsynczum Synchronisieren mit meinem lokalen Ordner, unmounte dann das Sparse-Bundle mit hdiutil detachund werfe das Laufwerk mit aus diskutil eject.