Używać SSD jako pamięci RAM?

13

Jak wykorzystać miejsce na dysku SSD jako pamięć RAM do uruchamiania zadań o dużej pamięci na Raspberry Pi? Czy to tak samo w Linuksie, jak tworzenie „ramdysku” zgodnie z tym pytaniem ?

719016
źródło
4
Krótka odpowiedź brzmi: nie jest to możliwe! Możesz użyć go jako dysku wymiany lub przechowywać w nim pliki tymczasowe, ale nie możesz rozszerzyć pamięci RAM za pomocą napędu. To po prostu niemożliwe.
Piotr Kula
3
Spróbuj użyć GParted do sformatowania dysku SSD z linux-swappartycją, a następnie uruchom sudo swapon /dev/sda1(lub cokolwiek to jest partycja wymiany). Ramdisk używa pamięci RAM jako pamięci, przestrzeń wymiany jest w zasadzie odwrotna - użyj pamięci jako pamięci RAM.
JamesTheAwesomeDude

Odpowiedzi:

8

Zakładam, że masz na myśli SD zamiast SSD? Utworzenie partycji wymiany na karcie SD powinno działać jako rodzaj pamięci RAM dla napędu.

Jeśli masz na myśli dysk SSD, nie ma prawdziwego sposobu na podłączenie dysku SSD do Pi. Jeśli podłączasz się przez USB, nie będzie dużego wzrostu, nawet normalny dysk twardy podłączony zewnętrznie nie będzie mógł działać z pełną prędkością.

Ryan Walmsley
źródło
7

To jest niemożliwe.

Pamięć dla Raspberry Pi jest ustalona na płycie i nie ma interfejsu, aby ją rozszerzyć lub wymienić.

Myślę, że zamieszanie wynika z faktu, że SSD (Solid State Disk) używa układów pamięci do przechowywania danych. Ale na tym kończą się podobieństwa. Układy pamięci na dysku SSD bardzo różnią się od normalnej pamięci RAM. Nie ma możliwości wymiany jednego na drugi.

Dysk SSD ma interfejs dysku SATA. Pamięć RAM ma interfejs magistrali pamięci. Są tak różne, że najlepszą analogią, jaką mogę zaoferować, jest porównanie kuchenki gazowej z kuchenką mikrofalową.

Starałem się uprościć poniższe informacje, więc dla każdego, kto to czyta z większym zrozumieniem, pamiętaj, że jest to tylko podsumowanie na bardzo wysokim poziomie:

Chipy SSD są pamięcią flash i mają nieulotną pamięć, podobnie jak dyski USB. Oznacza to, że mogą zachować swoje dane nawet bez zasilania. Potrzebują również specjalnego układu kontrolera, aby z nimi rozmawiać. Ten układ jest podłączony do interfejsu dysku SATA i jest zgodny z protokołem SATA. W mojej analogii SSD jest kuchenką gazową, a magistrala SATA dostarcza gaz do domu.

Typowe układy pamięci RAM są znane jako DRAM, tj. Dynamiczna pamięć RAM (znana również jako DDR SDRAM itp.). Przechowują dane przez bardzo krótki czas, dlatego konieczne jest odłączenie ich od sieci (odłączenie tych układów od reszty obwodów) w celu odświeżenia przechowywanych danych. Dzieje się to kilkaset lub tysiące razy na sekundę i jest przejrzysty dla użytkownika. Jeśli zasilanie się wyłączy, to odświeżanie zatrzyma się, a ich dane zostaną utracone na zawsze. Dynamiczne układy RAM korzystają z zupełnie innego protokołu niż układy pamięci flash i łączą się z kontrolerem pamięci dynamicznej, który z kolei łączy się z bardzo szybką magistralą pamięci. Ta magistrala pamięci trafia bezpośrednio do serca procesora. W mojej analogii Dynamic RAM jest kuchenką mikrofalową, a szybka magistrala pamięci jest zasilaniem sieci elektrycznej.

Procesor Rapsberry Pi ma specjalne połączenie z pamięcią RAM i nie może się tam połączyć nic oprócz dynamicznej pamięci RAM. Połączenia SATA i USB są przechowywane osobno.

Więc chociaż oba wykonują tę samą pracę (SSD i pamięć RAM przechowują dane i dane, kuchenki gazowe i kuchenki mikrofalowe gotują jedzenie i podgrzewają posiłki), wykonują tę pracę w zupełnie inny i niezgodny sposób. Jednego nie można zastąpić drugim.

Wreszcie, dysk RAM to sztuczka systemu operacyjnego, która udaje, że część dostępnej pamięci RAM jest w rzeczywistości dyskiem pamięci. Zmniejsza to dostępną pamięć RAM, co bardzo słusznie zauważa Lenik w swojej odpowiedzi.

Vassilis Papanikolaou
źródło
1
Co powiesz na to, kiedy system Windows (Ready Boost) pozwala używać dysków flash jako dodatkowej pamięci RAM? A może to próba dodania SWAP, który nie sprawi, że oczekiwana różnica w wydajności?
rymowanki
ReadyBoost w systemie Windows nie działa jako pamięć RAM, patrz Wikipedia: en.wikipedia.org/wiki/ReadyBoost . Podsumowując: ReadyBoost to rozwiązanie buforujące dyski, które przyspiesza wolniejsze dyski. Zazwyczaj polega to na kopiowaniu danych z wirujących dysków na dyski flash, aby skrócić czas dostępu do danych.
Vassilis Papanikolaou
3

Dodanie wymiany do Raspberry Pi

Możesz użyć pliku wymiany lub partycji wymiany. Jeśli zdecydujesz się na partycję wymiany, przeczytaj uważnie, ponieważ nie chcesz zrujnować żadnych ważnych danych.

Tworzenie pliku wymiany

  • dd if=/dev/zero of=/SWAPFILE bs=1024 count=524288
    • Spowoduje to utworzenie pustego pliku 512 MB.
    • Zmień liczbę = na preferowany rozmiar.
  • chown root:root /SWAPFILE
  • chmod 0600 /SWAPFILE
  • mkswap /SWAPFILE
  • swapon /SWAPFILE

Tworzenie partycji wymiany

  • dd if=/dev/zero of=/dev/sdXN bs=1024
    • Spowoduje to wypełnienie całej partycji / dev / sdXN
  • mkswap /dev/sdXN
  • swapon /dev/sdXN

Trwały przy uruchamianiu (dodaj do / etc / fstab)

  • vim /etc/fstab
  • Dodaj albo:
    • / SWAPFILE zamiana domyślnie zamień 0 0
    • / dev / sdXN swap domyślnie swap 0 0

Sprawdź, czy jest aktywny

  • free -m
EarthmeLon
źródło
1
Chociaż dyski SSD są szybkie i mogą być przydatne do wymiany przestrzeni, należy pamiętać, że dane można do nich zapisywać tylko ograniczoną liczbę razy.
earthmeLon
Nie zapominaj, że jesteś dławiony przez interfejs USB2, więc dysk SSD będzie miał mniej niż 10% swojej natywnej prędkości. Naprawdę nie sądzę, że musisz się martwić o przypadkowe użycie lampy błyskowej.
John La Rooy
1

Dysk RAM jest całkowicie przeciwny do tego, co chcesz zrobić. tworzy dysk w pamięci RAM, gdy potrzebujesz dodatkowej prędkości i nie dbasz o pamięć.

używając SSD jako RAM ... nie wiem, może stwórz partycję wymiany na SSD i pozwól się tam zamienić.

Lenik
źródło