Czy nalot na SSD może być szybszy niż ramdysk?

9

Tak więc typowy ssd będzie miał prędkość odczytu 250-500 Mb / s. A baran będzie miał około 10 razy więcej.

Moje pytanie brzmi: czy z jakiegoś powodu 4 ssds z raid-0 mogą być szybsze niż pojedynczy blok pamięci RAM?

Idę albo z dużą ilością pamięci RAM i RAMDISK, albo 4 SSD z RAID-0. Który jest szybszy?

Koray Tugay
źródło

Odpowiedzi:

12

Tak więc typowy ssd będzie miał prędkość odczytu 250-500 Mb / s. A baran będzie miał około 10 razy więcej.

Do jakiego rodzaju pamięci RAM masz na myśli? Wydaje się, że nie jest to coś, co ostatnio było powszechnie używane w komputerach PC.

DDR3 SDRAM może w prosty sposób dać ci szybkość transferu około 10 GB / s (do tego potrzebujesz DDR3-1333), a obecnie osiąga około 17 GB / s dla DDR3-2133.

Załóżmy, że nakładasz cztery dyski SSD o przepustowości 500 MB / s, a cały system jest w stanie sobie z tym poradzić (brak rywalizacji o magistralę, system jest nadal związany z operacjami we / wy itp.). Daje to teoretyczną maksymalną przepustowość 2 GB / s. 4xSSD traci prawie 10- krotnie .

DDR3 SDRAM ma opóźnienie w regionie 10 ns. Dobry dysk SSD może dać ci 100 000 IOPS, co przekłada się na opóźnienie 10 000 ns. (Na przykład Intel 530 określa 41k IOPS dla losowych odczytów 4k, co daje opóźnienie prawie 25 000 ns.)

Stripe cztery szybkie SSD i ignorować wszystkie napowietrznych, a ty może dostać 400k IOPS, czyli 2500 ns opóźnienie. 4xSSD traci 250 razy.

Dane z dysku SSD muszą gdzieś iść, a tym „gdzieś” będzie RAM. Procesor może go stamtąd pobrać, ale nie rozmawia bezpośrednio z dyskiem SSD, a nie bezpośrednio z dyskiem twardym z obrotowym talerzem.

Jeśli założymy, że nie cierpisz z powodu niezgodności magistrali na dysku SSD, sensownie jest przyjąć to samo dla pamięci RAM. Co prowadzi do wniosku, że według którejkolwiek z tych miar dysk SSD jest strasznie powolny w porównaniu do pamięci DDR3 SDRAM.

Pamięć RAM ma inne wady. Nawet w porównaniu do dysków SSD jest bardzo drogi na gigabajt i potrzebuje stałej mocy, aby zachować swoją zawartość. Ponadto dysk RAM nie działa tak samo jak RAM, ponieważ jest konstrukcją oprogramowania w systemie operacyjnym. Nadal powinieneś czerpać większość korzyści z pamięci RAM, ale tracisz tę samą ilość pamięci RAM, co może powodować, że system będzie musiał częściej wymieniać się (co jest wyrokiem śmierci za wydajność) i prawdopodobnie nie będzie daje całkiem taką samą wydajność jak surowa pamięć RAM.

CVn
źródło
ramdisk to jest wtedy ..
Koray Tugay,
1
@KorayTugay Jeśli potrzebujesz absolutnie największej wydajności, powinieneś wybrać dysk RAM, ale pamiętaj, że dysk RAM nie działa tak samo jak RAM i ma swój własny zestaw wad, z których najważniejszą jest cena . (Ponadto, choć doceniam akceptację, zachęcam do odczekania około dnia, zanim przyjmiesz odpowiedź, na wypadek gdyby ktoś inny udzielił jeszcze lepszej odpowiedzi.)
CVn
@KorayTugay: Ogólnie rzecz biorąc, odpowiedź na pytanie „Czy potrzebuję RAMDisk?” brzmi prawie zawsze: „Nie. Gdybyś naprawdę tego potrzebował, wiedziałbyś na tyle, że nie musiałbyś pytać”. Co robisz, co sprawia, że ​​myślisz, że będziesz go potrzebować?
afrazier
Programowanie / testowanie @afrazier z ogromną bazą danych i mam do niej dostęp wiele razy i pobierana jest z niej duża ilość danych. Zatrzymam db w pamięci RAM. Robię to przez 8 10 godzin dziennie i po upływie 4 5 sekund wydaje się, że zbyt długo. Muszę szybciej trafić do bazy danych.
Koray Tugay,
5
Każdy kompetentny DBMS zachowa jak najwięcej DB w pamięci RAM. Jeśli twoja baza danych jest wystarczająco mała, aby zmieścić się w pamięci RAM, jest wystarczająco mała, aby zmieścić się w pamięci RAM. Prawidłowe dostrojenie systemu DBMS za pomocą dysku SSD zapewni wydajność, której szukasz - na potrzeby rozwoju lokalnego możesz nawet skorzystać z takich funkcji, jak buforowanie z zapisem i martwienie się o ACID. RAMdisk walczy z systemem.
afrazier
4

Prawdziwą przyczyną odpowiedzi „nie” jest nie tylko porównanie różnic między nimi, ale także to, że system operacyjny ostatecznie buforuje dane odczytane z dysku SSD. Będzie buforować to w twojej pamięci RAM . Zatem odczyt bloku z dysku SSD oznacza również zapis bloku do pamięci RAM. Zawsze.

Dlatego dyski RAM są szybsze nawet w bardzo specjalnych kombinacjach sprzętowych (np. Bardzo szybki dysk SSD został połączony z bardzo wolną pamięcią RAM).

peterh - Przywróć Monikę
źródło
1
To właściwie najlepsza odpowiedź.
ChrisInEdmonton
sudo zfs set primarycache=none tankIdzie twoja pamięć podręczna oparta na pamięci RAM. (Zakładając oczywiście, że używasz ZFS.)
CV z
@ MichaelKjörling Zgadza się, nawet w konstrukcjach innych niż ZFS istnieje możliwość wyłączenia pamięci podręcznej odczytu. Ale nawet w tym przypadku, jeśli wykonasz wywołanie $ read () $, będzie to w rzeczywistości kopia z dysku SSD do pamięci RAM. Nie można tego uniknąć, z wyjątkiem sytuacji, gdy odczytujesz dane bezpośrednio w pamięci podręcznej procesora (co oznacza również, że w jakiś sposób unikasz DMA), procesor AMD cpus (i być może intels) mają zintegrowany menedżer pamięci, myślę, że ich nieco zmodyfikowana wersja mógłby jakoś to zrobić. Ale nawet w tym przypadku wymagałoby to modyfikacji procesora.
peterh - Przywróć Monikę
3

Aby odpowiedzieć na twoje aktualne pytanie: Nie. Pamięć RAM ma rząd wielkości większą szerokość pasma i rząd wielkości mniej opóźnienia. Nie jest nawet blisko.

Aby odpowiedzieć na pytanie, którego nie zadajesz: To, co planujesz zrobić, jest złym pomysłem, chyba że masz bardzo konkretny przypadek użycia, który wymaga tego rodzaju przepustowości. Jeśli naprawdę potrzebujesz takiej prędkości, uzyskanie dysku SSD opartego na PCIe (takiego jak ioDrive lub Intel 910 będzie znacznie szybsze niż worek dysków SSD SATA w RAID-0.

Każdy obecny dysk SSD będzie wystarczająco szybki, aby sprostać obciążeniom konsumentów i entuzjastów, że będziesz wąskim gardłem.

afrazier
źródło
W rzeczywistości opóźnienie DDR3 nie jest rzędu wielkości niższe niż w przypadku dysków SSD. Jest trzy do czterech rzędów wielkości niższy. Zobacz moją odpowiedź na niektóre rzeczywiste liczby. (Różnica przepustowości jest jednak zdecydowanie na boisku.)
CVn
Opóźnienie nie jest ważne, ponieważ operacje wejścia / wyjścia zdarzają się w blokach. Przynajmniej w blokach 4K. Pasmo jest ważne.
peterh - Przywróć Monikę
@PeterHorvath: Opóźnienia są nadal bardzo ważne w przypadku dysków SSD. Spójrz na wszystkie badania i testy porównawcze na spójność i problemy jąkania występujące we wczesnych dyskach SSD. Jak wspomniał Michael Kjörling, opóźnienie pamięci RAM jest o kilka rzędów wielkości mniejsze niż SSD. Opóźnienia w pamięci podręcznej Lx są nadal znacznie niższe, a opóźnienie rejestru procesora jest jeszcze mniejsze. I to wszystko ma znaczenie dla wydajności.
afrazier
1

Pamięć RAM zawsze będzie szybsza niż cokolwiek, co może dostarczyć system magistrali peryferyjnej (jak SATA).

Ale kiedy masz do czynienia z dyskiem RAM, nie masz do czynienia wyłącznie z pamięcią RAM. Istnieje również mnóstwo oprogramowania (system plików i sterowniki urządzeń), które uważają, że „konwertuje” surową pamięć RAM na coś, co system operacyjny postrzega jako miejsce na dysku.

To, jak szybki naprawdę będzie dysk RAM, zależy całkowicie od jakości tego oprogramowania.

Powiedziawszy to: normalnie powinno być jeszcze kilka razy szybsze jako najszybsze rozwiązanie do przechowywania danych, które można podłączyć do płyty głównej.

Mogą istnieć pewne przypadki narożne, w których określone wzorce użytkowania spowodują, że różnica będzie mniejsza lub prawie zerowa, ale bez bardziej szczegółowych informacji na temat tego, co zamierzasz zrobić z takim systemem, nie można powiedzieć, czy będzie to miało zastosowanie w twojej sytuacji.

PS Pamiętaj, że dysk RAM będzie niestabilny. Po uruchomieniu komputera musisz najpierw załadować go danymi. Po wyłączeniu komputera będziesz musiał zapisać zawartość (jeśli potrzebujesz jej do następnego uruchomienia). Jeśli system ulegnie awarii, stracisz dysk RAM, aby coś zapisać.
Jest to coś, co musisz wziąć pod uwagę, szczególnie jeśli spodziewasz się częstych restartów. Zapisywanie / ponowne ładowanie zawartości dysku RAM może być mniej niż trywialne.

Tonny
źródło
Będę przechowywać moją bazę danych w pamięci RAM.
Koray Tugay,