Wątek przeniesiony 2020-08-27 01:23 z Hardware/Software przez furious programming.

czas zapisu na SSD

0

Ile trwa zapis danych na SSD, ale zależnie od ilości sektorów?

Standardowo dyski (talerzowe) zapisywały dane w sektorach po 512B, co trwało 5-10 ms;
dokładniej: czas 1 obrotu dla rotacji: 7200 rpm = 7200 / 60s = 120 obrotów /s,
co daje: 1/120Hz = 8.3ms, więc średnio połowa z tego: 4ms

Ale dla kilku sektorów ten czas może być dużo większy, bo zależnie od fragmentacji pliku: głowica misi się przesuwać dodatkowo w pionie, co może trwać kilka obrotów.

A jak to wygląda w przypadku SSD,
znaczy ile trwa tu zapis danych wielkości: 512B, 64KB, 1 MB i 100MB?

3

Twoje założenie co do dysków mechanicznych jest mocno przestarzałe.
Tak było .... oj dawno, kiedy dysk udostępniał na zewnątrz swoją prawdziwą geometrię. Od dawna jest to schowane.
Dodam, dyski mają RAM (dawniej RAM był wyłącznie na q..sko drogich kontrolerach keszujących) itd... biez wodki nie razbieriosz

O SSD się nie wypowiem, jest tam specyficzna dla nich gospodarka sektorami

2

Linka dostałeś już wyżej, dodam, że zapis zależy od jakości kontrolera i pamięci, oczywiście odpowiedni firmware też ma znaczenie, który dba o oczyszczanie i zarządzanie komórkami (trim, garbage collection itp.).
Na pewno w osiągi podawane przez producentów trzeba wierzyć z przymrużeniem oka, szczególnie te nowe ssd m2 nvme.

0

Co przestarzałe? Jest i zawsze było 5ms dla 7200 rpm, i tyle pozostanie na zawsze.
Dla dysków np. 12000 rpm byłoby 12000/7200 = 1.66 razy szybciej, czyli 3ms zamiast 5ms.

SSD:
należy wykonać prosty test zapisu bloku: 512B, 1 MB, 10MB, 100 MB;
ale typu: write + flush (fizyczny zapis na dysk), i zmierzyć czas.

3
andsen napisał(a):

Co przestarzałe? Jest i zawsze było 5ms dla 7200 rpm, i tyle pozostanie na zawsze.

Nie, bo przed zapisem siedzi dram i najpierw zapisujesz na dram a dopiero potem już poza "paskiem postępu" dysk sobie przerzuca te dane dalej :p

andsen napisał(a):

należy wykonać prosty test zapisu bloku: 512B, 1 MB, 10MB, 100 MB;
ale typu: write + flush (fizyczny zapis na dysk), i zmierzyć czas.

Gunwo prawda.

  1. dysk ssd ma sektory po 4kB
  2. dysk najpierw zapisuje na dram na ultraszybkich kościach slc które mogą mieć nawet po kilka GB a dopiero potem sobie przerzuca dalej, więc generalnie zmierzysz sobie szybkość cachu i kontrolera a nie właściwą szybkość kości (mlc, tlc, qlc) trzymających zasadnicze dane.
2

A można wiedzieć czemu Cię to interesuje ? W komputerach stacjonarnych to już nie ma większego znaczenia, a przy dyskach serwerowych i macierzach trochę innych czynników jest branych pod uwagę i szybkość zapisu nie musi być wcale kluczowa (na przykład dyski mogą być połączone w RAID-0 co teoretycznie przy dwóch dyskach przyśpiesza zapis x2 )

2
mr_jaro napisał(a):
  1. dysk najpierw zapisuje na dram na ultraszybkich kościach slc które mogą mieć nawet po kilka GB a dopiero potem sobie przerzuca dalej, więc generalnie zmierzysz sobie szybkość cachu i kontrolera a nie właściwą szybkość kości (mlc, tlc, qlc) trzymających zasadnicze dane.

Nie do końca, tak było (i może i jest?) na co lepszejszych dyskach, obecnie zapisuje na kościach tlc pracujących w "trybie slc" plus pamięć ddr3/ddr4 ten bufor jest regularnie oczyszczany i kontrolowany (stąd taki duży zapis na tlc i temperatury, kontroler robi co może aby utrzymać wydajność i niwelować błędy, których jest dużo z racji budowy tlc).

2

@czysteskarpety: być może część dysków robi to co mówisz, natomiast sporo z nich robi to co ja mówię, nie bez powodu coraz większy bufor slc jest dodawany do tych dysków.

1
mr_jaro napisał(a):

@czysteskarpety: być może część dysków robi to co mówisz, natomiast sporo z nich robi to co ja mówię, nie bez powodu coraz większy bufor slc jest dodawany do tych dysków.

Ten bufor jest dynamiczny i maleje wraz z zapełnieniem dysku, więc tak realnie ciężko go nazwać większym, dlatego w mojej opinii najlepiej kupować przynajmniej 1TB i zostawiać z 50-100GB wolnego.
Niestety dostajemy coraz większe goowno za taką samą cenę co mlc :| (widać to po wynikach 4k które są w zasadzie takie same od czasów sata).

0

Zatem robimy ten test: zapis 512B, 4kB, 16, 64, 512, ... do 100MB,
czy też wolicie nadal bełkotać po próżnicy?

0
andsen napisał(a):

Zatem robimy ten test: zapis 512B, 4kB, 16, 64, 512, ... do 100MB,
czy też wolicie nadal bełkotać po próżnicy?

To sobie wybełkotaj testy do dysków hdtune, as ssd, crystaldiskmark itp. i w drogę...

0

Zrobiłem prosty test zapisu;

wyniki dla dysku HDD:
blok danych: czas zapisu w us (mikrosekundy)
512: 772
4k: 452
16k: 521
64k: 897
512k: 3897
2M: 58125

dla SSD:
512: 1088 us
4k: 179
16k: 298
64k: 368
512k: 3130
2M: 12419

W sumie nie widać tu żadnej istotnej przewagi SSD nad HDD, więc fama o szybkości SDD to prawdopodobnie miologia.

Myślałem że SSD będzie z 10 razy szybszy... no cóż, szkoda.

1

Pomijając fakt, że testujesz bufor obu dysków to tak :p

0

Zapisuję tak dokładnie, jak tylko możliwe z poziomu softu: write + flush.
Bez flush mierzyłbym ram a nie dysk, a wtedy czasy byłby identyczne.

Widać że SDD przyspiesza z rozmiarem bloków, czyli to się nadaje do kopiowania filmów, nic więcej z tego nie ma, a nawet gorzej:
do 512 jest wolniejszy, a takie coś jest przecież najczęściej zapisywane w systemie: rejestr, logi, raporty, małe pliczki, a nawet bazy danych z małymi stronicami (poniżej 4k) działają tu wolniej.

2

To polecam spróbować zainstalować wiekszy projekt na node.js na hdd, na ssd i nvme. Po takim teście hdd wyrzusz za okno :) A tam masz parędziesiąt mb ale za to tysiące małych plików :)

Bo pamiętaj. ssd pokazuje swoją moc w losowym odczycie/zapisie a nie takim teście z d**y ;)

0

Dobra, liczyłem że będzie kolejna perłka od bonifacego, ale niestety skończył sie na kill em all, więc zbanowałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1