Zapisywanie na w pełni zaszyfrowanym dysku flash USB w Mavericks jest bardzo wolne.
Modelem dysku, którego użyłem do testów, był Kingston DataTraveler Ultimate 3.0 G3 (64 GB). Testowałem prędkości przesyłania, odczytując / zapisując duży plik z / na zarówno zaszyfrowany, jak i niezaszyfrowany dysk. Testowałem na obecnym Macbooku z Mavericks i na starszej maszynie z Mountain Lion. Użyłem Narzędzia dyskowego do sformatowania dysku jako Mac OS Extended (Journaled) i Mac OS Extended (Journaled, Encrypted).
MacBook Pro (2013) z USB 3.0 z systemem OS X 10.9.2 (13C64)
Zapis: 86,16 MB / s (szyfrowany: 0,62 MB / s)
Odczyt: 181,66 MB / s (szyfrowany: 151,15 MB / s)
MacBook Pro (2007) z USB 2.0 z systemem OS X 10.8.5 (12F45)
Zapis: 23,57 MB / s (szyfrowany: 5,04 MB / s)
Odczyt: 36,23 MB / s (szyfrowany: 37,87 MB / s)
Jak widać na starszej maszynie, szybkość zapisu wyraźnie zmniejsza się podczas zapisywania na zaszyfrowanym woluminie, ale wciąż jest około dziesięć razy większa w porównaniu z nowszą maszyną z Mavericks. Czy może to być jakiś ostatnio wprowadzony problem w FileVault lub CoreStorage?
Aktualizacja (28.06.2014)
Wygląda na to, że dysk USB miał wadę sprzętową od samego początku. Dostałem dysk zastępczy (ten sam model), który nadal nie zapewnia oczekiwanych rezultatów, ale przynajmniej prędkość szyfrowania zapisu MBP z 2013 roku jest teraz równa z MBP z 2007 roku.
MacBook Pro (2013) z USB 3.0 z systemem OS X 10.9.3 (13D65)
Zapis: 135,41 MB / s (szyfrowany: 9,29 MB / s)
Odczyt: 196,22 MB / s (szyfrowany: 187,04 MB / s)
MacBook Pro (2007) z USB 2.0 z systemem OS X 10.8.5 (12F45)
Zapis: - MB / s (zaszyfrowane: 9,39 MB / s)
Odczyt: - MB / s (zaszyfrowane: 37,79 MB / s)
Pozostaje jednak pytanie, dlaczego prędkość szyfrowania zapisu na dysku USB w MBP 2013 jest mniejsza niż dziesięć procent zwykłej prędkości zapisu. Porównałem także prędkości odczytu / zapisu przed i po aktywacji FileVault na wewnętrznym dysku SSD MBP 2013 i tam nie mogłem wykryć żadnego spowolnienia.
time
,dd
iawk
. Blackmagic daje mi te same wyniki: goo.gl/bn32fC (niezaszyfrowany) vs. goo.gl/yghyqA (zaszyfrowany).Odpowiedzi:
Mam ten sam problem, który, jestem pewien, jest spowodowany kombinacją sposobu, w jaki operacje zapisu działają na pamięci flash i sposobu, w jaki działa szyfrowanie pamięci masowej (lub dowolnego woluminu).
Po pierwsze, zachowanie zapisu: w przeciwieństwie do pamięci ulotnej (pamięci używanej w pamięci komputera) lub dysków twardych, na których dowolny bit można zapisać w dowolnym momencie na 0 lub 1, pamięć flash ma dwa główne stany: zapisany i skasowany. W polu „zapisane” znajdują się 0 i 1. Gdy musisz zapisać w pamięci flash, musisz napisać cały blok, który jest obecnie w stanie wymazanym. Oprogramowanie systemu plików w systemie operacyjnym może wiedzieć, które bloki są wolne, ale kontroler i pamięć na urządzeniu flash nie. Specjalny sposób dla systemu operacyjnego, aby informować dysk SSD o udostępnianiu bloków, został opracowany dla dysków SSD „podłączonych do magistrali”: nazywa się TRIM. O ile mi wiadomo, stosy protokołów USB nie obsługują TRIM. Zasadniczo więc pamięć flash zapełnia się, dopóki nie zostaną faktycznie usunięte bloki, w którym to momencie system plików musi usunąć i przepisać bloki poprzez ich odczytanie, scalanie nowych danych, kasowanie i ich ponowne zapisywanie. Właśnie dlatego z czasem maleje wydajność zapisu małych plików na dyskach SSD.
Ciekawe są szczególne okoliczności zaszyfrowanych woluminów: w zależności od sposobu działania szyfrowania może on faktycznie zaszyfrować cały wolumin, wypełniając wszystkie bloki danymi, które wydają się przypadkowymi danymi, nawet jeśli bloki są faktycznie nieużywane i zawierają zera. Tak więc, gdy włączysz FileVault (lub w inny sposób włączysz szyfrowanie pamięci masowej), zasadniczo zużywa cały wolumin, nie pozostawiając miejsca na operacje zapisu. System plików musi stale czytać, wymazywać i przepisywać bloki, aby mógł przepisać je z dowolnymi zaszyfrowanymi danymi, które chcesz na nim umieścić.
Teraz powiem tutaj, że są to spekulacje oparte na rozsądnym zrozumieniu tego, jak rzeczy działają, ale są ludzie, którzy faktycznie znają szczegóły, którzy mogą poprawić lub poprawić moje wyjaśnienie i mam nadzieję, że to zrobią.
źródło
hdiutil attach
, następnie używamrsync
do synchronizacji z moim folderem lokalnym, następnie odłączam rzadki pakiet za pomocąhdiutil detach
i wysuwam dyskdiskutil eject
.