SSD Nodes Learn 🎉 VPS od $4.99/mies.
Przewodniki Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-08-07

Czym jest SSD VPS i dlaczego warto wybrać dyski flash?

Dowiedz się, czym różni się serwer VPS z dyskami SSD od tradycyjnych rozwiązań HDD. Wyjaśniamy wpływ technologii NAND flash na IOPS, opóźnienia oraz wydajność baz danych.

Czym jest SSD VPS?

SSD VPS to wirtualny serwer prywatny, którego pamięć masowa opiera się na pamięci flash, a nie na talerzowym dysku twardym. SSD oznacza solid state drive: pamięć zbudowaną z układów NAND flash, pozbawioną ruchomych części mechanicznych. VPS oznacza virtual private server: odizolowany wycinek fizycznej maszyny hosta, działający pod kontrolą własnego systemu operacyjnego, udostępniony użytkownikowi jako samodzielny serwer. Połączenie tych dwóch pojęć wskazuje na konkretną korzyść. Gdy serwer odczytuje blok danych, nie musi czekać na ruch żadnego elementu mechanicznego.

To pełna definicja. Wszystkie poniższe informacje dotyczą tego, co pomija to określenie, ponieważ hasło "hosting SSD" na stronie z cennikiem niewiele mówi o macierzy dyskowej, która za nim stoi.

Jeśli nadal ustalasz, czym VPS różni się od zwykłej maszyny wirtualnej, różnica między VPS, VM a VPC jest lepszym artykułem na początek.

Dlaczego dostawcy hostingu reklamują szybkość pamięci masowej zamiast jej pojemności

Strona z ofertą wymienia liczbę rdzeni CPU, pamięć RAM, rozmiar dysku i przepustowość, a następnie dodaje jedno słowo dotyczące dysku, które nie odnosi się do pojemności. Dostawcy robią to, ponieważ pojemność przestała być najważniejszym parametrem pamięci masowej już wiele lat temu. Dwie wartości decydujące o odczuwalnej wydajności serwera to IOPS (liczba operacji wejścia/wyjścia na sekundę) oraz opóźnienie (czas potrzebny na wykonanie pojedynczej operacji).

Przyczyną jest różnica mechaniczna. Dysk twardy przechowuje dane na obracających się talerzach i odczytuje je za pomocą głowicy na ruchomym ramieniu. Aby dotrzeć do bloku danych w innym miejscu talerza, ramię musi wykonać ruch (seek), a dysk musi się obrócić, aż odpowiedni sektor znajdzie się pod głowicą. Przy 7200 obrotach na minutę pół obrotu zajmuje średnio około 4 ms, a ruch ramienia dodaje kolejne milisekundy. Pamięć flash nie posiada ramienia ani talerzy, więc odczyt jest elektrycznym wyszukiwaniem, które kończy się w czasie liczonym w dziesiątkach mikrosekund.

ChartRandom 4k read, published device class specifications rather than VPS measurements
The data behind this chart
[
  {
    "device": "7200 rpm hard disk",
    "random_read_iops": "125",
    "read_latency_ms": 8
  },
  {
    "device": "SATA SSD",
    "random_read_iops": "90,000",
    "read_latency_ms": 0.15
  },
  {
    "device": "NVMe SSD",
    "random_read_iops": "600,000",
    "read_latency_ms": 0.08
  }
]

Dysk twardy 7200 rpm osiąga około 125 losowych odczytów 4k na sekundę, a jeden taki odczyt trwa około 8 ms. Napęd NVMe osiąga blisko 600,000 takich samych odczytów, przy czasie około 0.08 ms każdy. Dysk SATA SSD plasuje się pomiędzy nimi z wynikiem bliskim 90,000. Należy traktować te wartości jako rzędy wielkości, a nie jako procentową poprawę wydajności.

Dwa ostrzeżenia dotyczące tych danych. Są to opublikowane specyfikacje dla całych napędów danej klasy, czyli wartości z kart katalogowych producenta, a nie wyniki pomiarów na VPS. Ponadto użytkownik nigdy nie otrzymuje całego napędu: wolumen jest udziałem w jednym urządzeniu lub macierzy, współdzielonym z innymi klientami na tym samym sprzęcie.

Obie kolumny odpowiadają na inne pytania, więc należy analizować je łącznie. Opóźnienie określa czas oczekiwania na pojedynczą operację. IOPS określa, ile operacji dysk może przetwarzać jednocześnie. Pamięć flash osiąga wysokie wartości IOPS dzięki równoległości, ponieważ wiele układów flash odpowiada na wiele żądań naraz, podczas gdy głęboka kolejka utrzymuje je w stanie ciągłego obciążenia. Program jednowątkowy, który wysyła jeden odczyt, czeka na niego, a dopiero potem wysyła kolejny, nigdy nie osiągnie szczytowych wartości z tabeli. Zamiast tego odczuje on wpływ kolumny z opóźnieniami.

SSD, NVMe, SATA i PCIe: cztery pojęcia na czterech różnych warstwach

Kupujący często mylą te terminy, ponieważ każdy z nich opisuje inny element systemu.

  • SSD to nośnik danych. Oznacza to, że dane są przechowywane na układach pamięci flash NAND, a nie na talerzach magnetycznych.
  • SATA to interfejs zaprojektowany w erze dysków mechanicznych. Jego maksymalna przepustowość wynosi 6 Gbit/s, co przekłada się na około 550 MB/s rzeczywistego transferu, a kolejka poleceń obsługuje 32 oczekujące operacje.
  • NVMe (non-volatile memory express) to protokół stworzony specjalnie z myślą o pamięciach flash. Obsługuje wiele kolejek, z których każda może zawierać tysiące poleceń, dzięki czemu kilka rdzeni procesora może komunikować się z dyskiem jednocześnie, bez konieczności współdzielenia jednej wąskiej kolejki.
  • PCIe (peripheral component interconnect express) to magistrala, przez którą działa NVMe; jest to ten sam rodzaj linii, do których podłącza się karty graficzne.

Zatem zarówno dysk SSD SATA, jak i SSD NVMe przechowują dane na pamięci flash. Różnią się natomiast interfejsem, którego używają do komunikacji. Dysk SSD SATA jest nadal znacznie szybszy od każdego dysku twardego, jednak kolejka 32 poleceń ogranicza możliwość wykonywania pracy równoległej, a właśnie w tym pamięci flash sprawdzają się najlepiej. Wybór odpowiedniego rozwiązania zależy od obciążenia, a decyzja między NVMe a SATA SSD szczegółowo analizuje to zagadnienie.

Pamięć lokalna typu flash czy pamięć sieciowa?

Pod tym samym określeniem sprzedawane są dwa zupełnie różne rozwiązania.

Pamięć lokalna oznacza, że dyski flash znajdują się wewnątrz tego samego fizycznego hosta co VPS. Żądanie przesyłane jest przez magistralę PCIe wewnątrz jednej maszyny i wraca bezpośrednio, dzięki czemu opóźnienia utrzymują się na poziomie kilkudziesięciu mikrosekund.

Pamięć sieciowa oznacza, że dysk wirtualny znajduje się w oddzielnym klastrze pamięci masowej, często typu Ceph lub SAN (storage area network), a każdy odczyt i zapis musi przejść przez sieć, aby do niego dotrzeć. Dostawcy zazwyczaj nazywają to "cloud block storage" lub "elastic volumes". Pamięć flash jest rzeczywista, ale podróż przez sieć również. Jest ona dodawana do każdej operacji, więc opóźnienia wynoszą od kilkuset mikrosekund do kilku milisekund, zamiast kilkudziesięciu.

Żadne z tych rozwiązań nie jest błędne. Pamięć sieciowa przetrwa awarię hosta, ponieważ dane nigdy nie znajdowały się na tym hoście: dostawca może uruchomić serwer na innym sprzęcie, a dysk podąży za nim. Lokalne NVMe jest szybsze, ale powiązane z jedną fizyczną maszyną, więc awaria sprzętu oznacza konieczność przywrócenia danych z kopii zapasowej. Należy zapytać, z którego rozwiązania korzysta dany plan. Prawie nikt tego nie robi.

Jak odczuwalna jest różnica na rzeczywistym serwerze

Praca serwera polega głównie na niewielkich, losowych operacjach odczytu i zapisu, a nie na długotrwałych transferach sekwencyjnych. Dlatego wartość MB/s podawana w materiałach marketingowych jest najmniej przydatną liczbą na stronie.

  • Zatwierdzanie transakcji w bazie danych. Baza danych gwarantująca trwałość wywołuje fsync podczas zatwierdzania transakcji, a następnie oczekuje na potwierdzenie z nośnika, że dane zostały faktycznie zapisane. Na dysku twardym czas oczekiwania wynosi milisekundy, co ogranicza wydajność małej bazy danych do kilkuset transakcji na sekundę. W przypadku pamięci flash ten sam czas oczekiwania to ułamek milisekundy. Jest to obszar, w którym różnica jest najbardziej odczuwalna, niezależnie od tego, czy używasz PostgreSQL, MySQL czy SQLite jako produkcyjnej bazy danych.
  • Instalacja pakietów. apt install rozpakowuje tysiące małych plików i synchronizuje je z dyskiem w trakcie pracy. Prawie żadna z tych operacji nie jest sekwencyjna, dlatego wydajność jest ograniczona przez IOPS.
  • Pobieranie obrazów kontenerów. docker pull pobiera skompresowane warstwy przez sieć, a następnie wypakowuje je do tysięcy małych plików. Pobieranie jest ograniczone przepustowością sieci. Ekstrakcja jest ograniczona wydajnością dysku i na wolnym wolumenie to właśnie ten etap powoduje odczuwalne opóźnienia.
  • Uruchamianie i restart. Proces startowy odczytuje kernel oraz initramfs, a następnie setki małych plików jednostek i bibliotek współdzielonych rozproszonych po całym wolumenie.

Żadna z tych operacji nie jest dużym odczytem sekwencyjnym. Wolumen, który osiąga 500 MB/s przy obsłudze zaledwie 3 000 IOPS, nadal będzie wydawał się wolny podczas docker compose pull, ponieważ czas oczekiwania jest liczony dla każdego pliku z osobna, a nie dla każdego megabajta.

Dlaczego określenie "SSD cloud hosting" w cenniku nie przekazuje niemal żadnych informacji

To określenie opisuje jedynie nośnik danych. Nie mówi nic o interfejsie, z którego korzysta dysk, ani o tym, czy znajduje się on w tej samej maszynie co serwer. Nie informuje również o limitach wydajności przypisanych do planu.

To właśnie limity mają największe znaczenie, a są reklamowane najrzadziej. Dostawcy ograniczają IOPS oraz przepustowość dla każdego wolumenu, ponieważ jeden host obsługuje wielu klientów, a nieograniczony sąsiad mógłby wyczerpać zasoby pozostałych. Limit rzędu kilku tysięcy IOPS na sprzęcie zdolnym do osiągnięcia setek tysięcy jest standardem i uczciwym podejściem, jednak pozostaje niewidoczny w opisie planu. Dwa plany mogą mieć w opisie "SSD", podczas gdy jeden oferuje lokalny dysk NVMe bez limitów na wolumen, a drugi współdzielony wolumen klastrowy ograniczony do 3 000 IOPS.

Limity występują w dwóch formach. Limit stały to sztywny pułap, który nigdy się nie zmienia. Limit typu burst zapewnia niską wydajność bazową oraz pulę punktów, które pozwalają na chwilowe przekroczenie limitu; punkty te odnawiają się, gdy wolumen jest w stanie spoczynku. Limit typu burst wygląda bardzo dobrze w pięciominutowym teście, po czym wydajność spada do poziomu bazowego w trakcie importu bazy danych lub przywracania dużej kopii zapasowej. Jeśli dostawca podaje wysoką wartość, należy zapytać, przez jak długi czas można ją utrzymywać.

Jak sprawdzić, co faktycznie oferuje VPS

Z wnętrza systemu gościa widoczne są tylko informacje przekazywane przez hypervisor.

lsblk -d -o NAME,ROTA,MODEL,SIZE
cat /sys/block/vda/queue/rotational

Zastąp vda nazwą urządzenia lsblk wyświetloną dla danego dysku. Pliki ROTA oraz rotational zawierają wartość 0, gdy jądro otrzymało informację, że urządzenie nie jest dyskiem talerzowym, oraz 1 w przeciwnym przypadku. Dysk wirtualny ustawia tę flagę zgodnie z informacjami przekazanymi przez hypervisor, więc opisuje ona urządzenie wirtualne, a nie fizyczny sprzęt znajdujący się pod spodem. Plik MODEL jest zazwyczaj pusty w przypadku dysków virtio, takich jak vda, lub zawiera ogólny ciąg znaków, jak QEMU HARDDISK w przypadku emulowanego kontrolera SATA. Systemy gościa nie powinny widzieć macierzy hosta i faktycznie jej nie widzą.

Należy zatem traktować tę flagę jako wskazówkę i przeprowadzić pomiary. Wykonaj test losowego zapisu 4k za pomocą fio na pliku znajdującym się na wolumenie, przy głębokości kolejki (queue depth) faktycznie wykorzystywanej przez aplikację. Test powinien trwać wystarczająco długo, aby wyczerpać ewentualne limity wydajności chwilowej (burst credit). Artykuł Prawidłowe testowanie wydajności VPS zawiera polecenia fio oraz opis typowych błędów, które prowadzą do uzyskania zawyżonych wyników.

Trzy pytania do dostawcy przed zakupem

  1. Czy pamięć masowa jest lokalna dla hypervisora, czy sieciowa? Odpowiedź określa minimalne opóźnienia i decyduje o losie danych w przypadku awarii hosta fizycznego. Dostawca, który odpowiada na to pytanie wprost, przemyślał architekturę systemu.
  2. Jaki jest limit IOPS dla mojego wolumenu? Należy żądać konkretnej liczby. Określenia typu „bez limitu” lub „klasa enterprise” nie są wartościami liczbowymi. Jeśli limit faktycznie nie istnieje, należy zapytać, co uniemożliwia sąsiedniemu użytkownikowi na tym samym hoście zajęcie całej macierzy podczas wykonywania kopii zapasowej.
  3. Czy ten limit jest stały, czy dotyczy tylko chwilowego wzrostu wydajności (burst)? W przypadku burstu należy zapytać o wartość bazową oraz czas trwania zwiększonej wydajności. Wartość bazowa to parametr, z którym będzie musiało pracować nocne zadanie, dlatego to na niej należy opierać planowanie.

Czy pamięć flash ulega zużyciu i czy to jest Twój problem?

Komórki pamięci flash mają ograniczoną liczbę cykli zapisu, dlatego producenci dysków publikują wskaźnik wytrzymałości wyrażony w TBW (terabytes written) lub DWPD (drive writes per day). Dysk równomiernie rozkłada zapis na wszystkie komórki, co nazywa się wyrównywaniem zużycia (wear levelling), oraz utrzymuje zapasowe bloki w rezerwie, aby zastąpić uszkodzone komórki. W przypadku VPS zużycie jest problemem dostawcy: monitoruje on liczniki SMART na własnych dyskach i wymienia sprzęt, zanim wskaźnik wytrzymałości zostanie przekroczony. Twój problem jest starszy niż technologia flash. Dysk nie jest kopią zapasową, a redundancja wolumenu również nią nie jest, ponieważ kopiuje usunięcie danych równie wiernie, co same dane.

W rzeczywistości dokonujesz wyboru w oparciu o cenę za gigabajt. Pamięć flash kosztuje więcej za gigabajt niż dyski talerzowe, dlatego plan z SSD zazwyczaj oferuje mniejszą pojemność niż plan z dyskiem HDD w tej samej cenie. Jeśli potrzebujesz dużej przestrzeni na multimedia lub archiwa, utrzymuj szybki wolumen jako mały, a dane masowe przechowuj w tańszym miejscu, co jest również właściwym podejściem do przechowywania kopii zapasowych poza serwerem. Informacje o tym, jak pamięć masowa wpływa na wysokość rachunku, zawiera artykuł ile faktycznie kosztuje VPS, który szczegółowo omawia poszczególne pozycje kosztowe.

FAQ

Czy SSD VPS to to samo co NVMe VPS?

Każdy NVMe VPS jest SSD VPS, ponieważ dyski NVMe wykorzystują pamięć flash. Odwrotna zależność nie zachodzi. Plan reklamowany jako "SSD" może oferować dyski SATA SSD, czyli pamięć flash z interfejsem zaprojektowanym dla dysków mechanicznych, ograniczoną kolejką 32 poleceń i przepustowością bliską 550 MB/s. Oba rozwiązania są znacznie szybsze od dysków talerzowych. Jeśli różnica między nimi ma znaczenie dla obciążenia, należy zapytać dostawcę o typ nośnika w danym planie, zamiast polegać wyłącznie na nazwie oferty.

Czy SSD VPS przyspieszy moją stronę internetową?

Przyspiesza on operacje dyskowe i tylko je. Strona wykonująca wiele zapytań do bazy danych przy każdym żądaniu przyspieszy, ponieważ zapytania te oraz ich zatwierdzenia (commits) to małe operacje losowego wejścia/wyjścia. Strona serwowana z pamięci RAM lub cache nie odwołuje się do dysku podczas wysyłania, więc zmiana będzie nieodczuwalna. Przed zakupem szybszej pamięci masowej należy zmierzyć, który etap żądania jest wąskim gardłem.

Jak sprawdzić, czy mój VPS faktycznie korzysta z pamięci SSD?

Z poziomu systemu gościa nie można zweryfikować fizycznego sprzętu. lsblk -d -o NAME,ROTA pokazuje to, co deklaruje urządzenie wirtualne, a wartość tę ustala hypervisor, więc 0 jest jedynie wskazówką, a nie dowodem. Praktycznym testem jest pomiar: należy uruchomić fio z losowym obciążeniem odczytu 4k przez kilka minut i sprawdzić raportowaną latencję. Losowe odczyty z latencją rzędu pojedynczych milisekund wskazują na dyski talerzowe lub przeciążony wolumen sieciowy. Wyniki rzędu dziesiątek mikrosekund wskazują na lokalną pamięć flash.

Czy pamięć SSD podłączona przez sieć jest gorsza od lokalnego NVMe?

Jest wolniejsza w przeliczeniu na operację i ulega awariom w inny sposób. Czas odpowiedzi sieci (round trip) jest doliczany do każdego odczytu i zapisu, więc latencja jest wyższa, mimo że oba rozwiązania wykorzystują pamięć flash. W zamian dane nie znajdują się na pojedynczym hoście fizycznym, więc awaria hosta nie powoduje utraty wolumenu, a migawki i migracja na żywo są łatwiejsze do wdrożenia dla dostawcy. Lokalną pamięć flash należy wybierać dla baz danych wrażliwych na latencję. Pamięć sieciową należy wybierać wtedy, gdy przetrwanie wolumenu jest ważniejsze niż mikrosekundy opóźnienia.

#vps#ssd#nvme#storage#hosting-basics