niedziela, sierpnia 31, 2008

Teoretyczny limit życia dysku SSD w Asus EEE.

W EEE PC Asus montuje dyski SSD oparte na układach Flash. Wg. tego co twierdzi Asus ich dyski powinny przetrwać około 10 tysięcy cykli zapisów.

[Update: 1 września 2008, 23:00 :-)
Poczytałem jeszcze trochę o pamięciach flash i pocieszający wniosek jest taki, że zapisywanie non-stop do pojedynczej komórki pamięci flash w praktycznie wszystkich urządzeniach bazujących na flash nie oznacza pisania do tej samej komórki fizycznej :-)]

W sieci można znaleźć trochę opracowań na temat tego jak limit cykli zapisów przekłada się na żywotność dysków SSD. Są to jednak głównie opracowania dla dużych dysków [od 64GB wzwyż] montowanych w serwerach [gdzie limit cykli zapisu to około 5 mln]. Tu można znaleźć jedno z nich - http://www.storagesearch.com/ssdmyths-endurance.html

Nie do końca przekonuje mnie metodologia tamtych obliczeń [choć jej nie kwestionuję, artykuły te pisali ludzie, którzy zajmują się takimi sprawami, ja jestem amatorem]. [Update: 1 września 2008, 23:00, większość badań o których tu mowa to badania zakładające zapis całego dysku, w takiej sytuacji mechanizmy rozpraszające zapisy na nic się nie zdadzą bo i tak wszystkie komórki fizyczne muszą zostać zapisane.]

Ja postanowiłem przeprowadzić swoje własne wyliczenia :-)

Założenia:
Wbudowany dysk SSD w EEE 900/XP [i większość innych modeli z rodziny EEE] ma 4GB pojemności, jednostka alokacji liczy 4KB, dostępnych jest 977948 jednostek alokacji, choć dla prostoty obliczeń założymy ze jest ich dokładnie 1048576 ;-) [czyli 220].
Zapis każdej komórki fizycznej oznacza zapis do tego samego obszaru flash. [to jest błędne założenie, teraz to już wiem ;-)]

W pierwszym przybliżeniu można przyjąć, że każda z około 1 mln jednostek alokacji ma takie samo prawdopodobieństwo, że będzie zapisana. Czyli co najmniej jej pierwszy bit będzie zapisany [pomijamy to, że zapisany będzie w rzeczywistości tylko wtedy gdy się zmieni czyli za każdym razem z prawdopodobieństwem 1/2, co oznacza że za 1 zapis można by było uznać średnio 2 ;-)]
Oznacza to na chłopski rozum [ale wskazały to też moje symulacje - symulacja polegała na wielokrotnym losowaniu liczby od 0 do 220 i zwiększaniu o jeden odpowiadającej tej liczbie "komórki", póty puki któraś z komórek nie przekroczyła wartości 10000], że każda z jednostek alokacji musiałaby zostać zapisana około 10 tysięcy razy, co daje nam łącznie około 10 mld zapisów. Co przy zapisie powiedzmy 10 jednostek alokacji na sekundę daje około 31-32 lata. 10 jednostek alokacji na sekundę daje zapis około 340 MB w ciągu doby.
Wydaje się więc bezpiecznym założeniem przyjęcie, że żywotność dysku SSD w takim reżimie to minimum około 10 lat.

Może jednak być tak, że na dysku mogą być obszary do których system pisze częściej niż na innych. Co prawda dyski SSD mają podobno wbudowane mechanizmy rozpraszające zapis po "powierzchni" tak by obciążenie komórek było w miarę równomierne, ale nie wiadomo jak to działa w EEE. [Update: 1 września 2008, wszystkie urządzenia Flash mają podobno takie mechanizmy, dlatego rozsądnym założeniem jest, że dysk EEE też ma :-)]
Z moich eksperymentów jakie przeprowadziłem jak na razie z Linuksem przy pomocy zmodyfikowanej lekko wersji emulatora JPC [tak go zmodyfikowałem by logował wszystkie zapisy na dysk] wynika, że w trakcie startu systemu Linuks zawsze próbuje zapisać 2 bajty do sektora o numerze 2 na dysku.
W takim przypadku żywotność dysku SSD ogranicza się do około 10 tysięcy restartów, a to już może być zbyt mało. Przy założeniu, że komputer włączamy raz dziennie, przez 20 dni w miesiącu, czyli 240 razy w roku, oznacza to wytrzymałość na poziomie 41-42 lat.
Jeżeli jednak będziemy restartować komputer codziennie 2-3 razy przez wszystkie dni roku to dysku SSD starczy nam na około 10 lat.
Jak jednak widzę z logów mój badany Linuks także przy zamykaniu systemu pisze do sektora numer 2 na dysku. A to oznacza, że w rzeczywistości przy 1 włączeniu i wyłączeniu komputera w ciągu dnia nasz limit skończy się po tych 10 latach.
Przy bardziej intensywnym włączaniu/wyłączaniu limit wyczerpać się może odpowiedni wcześniej........

Jak widać można uznać 10 lat to bezpieczny limit przy oszczędnym używaniu EEE.
Wszystko jednak przy założeniu, że na dysku system nie ma jakichś plików do których szczególnie ochoczo zapisuje.

Jeśli się uda [co nie jest pewne] to postaram się przeprowadzić eksperymenty z tym jak to jest z Windows XP, ale nie wydaje mi się by było to jakoś szczególnie różne jeśli chodzi o start. Rozsądne jednak wydaje się wyłączenie pliku wymiany i rozważenie stworzenia RAMDysku na pliki tymczasowe.


Podobne postybeta
Algorytm ;-)
Defragmentacja SSD - o tym dlaczego nie należy jej robić
Niepomyśleli....
Tablet marzeń
GAE zmienia ceny i darmową quota'ę... a ja zmieniam kod ;-)

4 komentarze:

  1. Hmm, a jak w takim przypadku wygląda sprawa defragmentacji pod XP, czy ma to sens skoro SSD zapisują w trybie rozproszonym?

    OdpowiedzUsuń
  2. Jak najbardziej ma sens :-)
    Defragmentacja dysku powoduje, że istniejące pliki zapisane są w sposób spójny [tzn. w kolejnych logicznych obszarach dysku], oraz to, że wolny obszar też jest spójny.
    Dzięki temu tworząc nowy plik Windows nie musi wyczyniać harców w celu znalezienia odpowiedniego miejsca na dysku, ani nie musi dzielić pliku na kawałki.

    OdpowiedzUsuń
  3. OK już rozumiem.
    Planuję właśnie zakup EEE 901
    Uważam że 10 lat to dość długi okres czasu, tym bardziej że pewnie za 5 będzie ciężko z zakupem baterii do eee, a więc problem z użytkowaniem może być zupełnie innego rodzaju.
    Pozdrawiam

    OdpowiedzUsuń
  4. Tak przeczytałem to co napisałem o defragmentacji dysku pod XP... w przypadku SSD nie należy defragmentować dysku ponieważ to może doprowadzić do większej fragmentacji plików i szybszego wyczerpania limitu zapisów.

    OdpowiedzUsuń