VPS NVMe Gen4 - szybka przestrzeń dla aplikacji
NVMe Gen4 skraca kolejki I/O — nie daje dedykowanego kontrolera per VPS. iowait i iostat pokażą prawdę. Shared backend = variance.
Gen4 w praktyce
PCIe Gen4 ×4 — teoretycznie wysokie MB/s. W VPS widzisz wycinek kontrolera hosta.
Random IOPS ważniejsze dla DB niż seq read w reklamie.
Jeden test dd ≠ rok produkcji.
Wzorce obciążenia
OLTP baza — małe random writes. Logi append — seq write. Build — mix.
Dopasuj tuning: postgres shared_buffers, mysql innodb_flush, nie magiczny mount flag z forum.
Pełny dysk — wszystkie IOPS spadają. Alert na 85% df.
Narzędzia diagnostyczne
iostat -x 1, pidstat -d, iotop. Szukaj procesu, nie wini od razu providera.
fio z małym jobem w off-peak — baseline. Powtarzaj co tydzień.
Latency p99 aplikacji ważniejsza niż peak MB/s z benchmarku.
I/O wait vs CPU
Wysoki iowait przy niskim CPU — dysk albo network storage queue.
Ryzen 9 7900X szybki, ale NVMe shared nie zawsze wykorzysta CPU.
RAM cache oszczędza I/O — particja większa niż dataset bywa marnotrawstwem.
Dysk vs transfer sieci
Backup offsite przez sieć — oba limity: I/O odczytu i egress transferu planu.
AS219481, transfer w cenie VPS. IP Transit — inna usługa (WireGuard, per TB).
Co możesz zrobić u siebie
journald rotation, logrotate agresywne, tmpfs tylko gdy wiesz co robisz.
Osobna partycja /var/lib dla DB — łatwiejsze monitorowanie.
Snapshot przed dużą migracją danych.
Postgres i MySQL na NVMe
Random write pod WAL/binlog — NVMe pomaga. Checkpoint spike nadal możliwy.
shared_buffers / innodb_buffer — RAM ważniejszy niż kolejny test fio.
Pełny dysk — Postgres refuse write. Alert na 85%.
Logi aplikacji i rotacja
JSON log bez rotation — NVMe pełne w tydzień.
logrotate daily + compress. journald SystemMaxUse.
Centralny Loki — egress transferu planu.
Build cache i artefakty CI
node_modules, target/, .gradle — szybkie na NVMe, zajmują GB.
Cleanup w cron — dysk pełny spowalnia I/O dla wszystkich procesów.
Artefakty push offsite — nie trzymaj w nieskończoność na VPS.
Snapshot logiczny vs crash consistency
Kopiowanie plików DB w trakcie write — uszkodzona baza.
pg_start_backup / pg_stop_backup albo mysqldump.
Snapshot panelu — crash consistent — test restore.
Alerty dyskowe
Prometheus node_exporter node_filesystem_avail_bytes.
Alert na trend — 70% pełne szybciej niż myślisz przy logach.
iowait sustained — ticket z iostat -x.
Case study: pełny dysk
Logi zapełniły partycję — MySQL nie startuje, backup fail, serwis down.
Alert na 85%, rotation, osobna partycja /var/log.
NVMe szybki — pełny dysk i tak blokuje write.
I/O jako system
NVMe Gen4 — niska latency kolejki. Shared — variance. iostat trend, nie jeden dd.
Pełny dysk — wszystkie IOPS spadają. Alert 85%. Rotacja logów.
Ryzen szybki CPU nie ratuje pełnego table scan na wolnym dysku logicznym — ale pełny dysk fizyczny blokuje wszystkich.
Backup offsite — odczyt dysku + egress transferu planu. IP Transit osobno tylko gdy tunel operatorski.
KVM gość — virtio blk. Windows — VirtIO drivers.
Anti-DDoS nie dotyka iowait od lokalnego backupu. Zaplanuj okna.
WAW Tier III — DC. DDR5 bez ECC — nie zastępuje restic do S3.
Workload a dysk
OLTP — random IOPS. Logi — seq write. Build — mixed.
Dopasuj narzędzie do wzorca — nie odwrotnie.
Monitoring p99 latency aplikacji ważniejszy niż seq read z reklamy.
Platforma Sinlege
NVMe Gen4 shared, Ryzen host, KVM, WAW, transfer w planie, Anti-DDoS L3/L4, AS219481.
Brak gwarancji stałych IOPS — variance uczciwie.
Po pierwszym iowait alercie
iostat zapisany w ticket jeśli sustained.
df i inode check w cron.
Log rotation potwierdzony.
Backup nie w peak I/O godzinach.
Dysk w zespole
Osobny monitoring /var i /home — różne wzorce wzrostu.
PostgreSQL pg_stat_bgwriter — checkpoint spike.
Docker images prune — dysk i IOPS.
Dysk — podsumowanie
Gen4 NVMe — kolejki krótsze; shared variance real.
iowait — iostat trend, nie jeden dd.
Pełny dysk — alert 85%. Rotacja logów.
Ryzen szybki CPU nie ratuje pełnego table scan na pełnym dysku.
Backup offsite — odczyt + transfer planu.
KVM virtio blk — Windows VirtIO drivers.
WAW Tier III — DC infra.
DDR5 bez ECC host — Twoje dane restic.
Anti-DDoS nie dotyczy lokalnego iowait backupu.
IP Transit osobno gdy tunel operatorski backup.
Jak o tym myśleć
VPS NVMe ma sens, gdy chodzi o: DB, cache, buildy, wrażliwość na I/O.
To nadal VPS na współdzielonej infrastrukturze: masz root, KVM i transfer w cenie planu, ale CPU steal, IOPS i uplink zależą od realnego obciążenia hosta. Jeśli potrzebujesz stałego heavy loadu 24/7, policz osobną architekturę zamiast zakładać, że większy plan VPS załatwi wszystko.
FAQ
Czy NVMe = SSD SATA?
NVMe szybsze przy niskim latency. Oba na hoście Sinlege to warstwa Gen4 NVMe.
Ile IOPS dostanę?
Brak publicznej stałej gwarancji IOPS per plan. Shared — variance.
Czy RAID chroni moje dane?
RAID na hoście to odporność infrastruktury operatora. Backup klienta — offsite.
Ext4 czy XFS?
Obie OK. Spójność backupu ważniejsza niż filesystem religion.
TRIM?
Zależy od warstwy wirtualizacji. Nie polegaj na TRIM jako na strategii backupu.
Quota inode?
Sprawdź df -i — milion małych plików wypełnia inode bez GB.
Disco benchmark marketing?
Provider podaje seq read — Twoja app robi random 4k.
Separate volume dla DB?
Partycja /var/lib/postgresql — łatwiejsze monitorowanie.
Btrfs na gościu?
Możliwe — snapshot lokalny nie zastępuje offsite.
Swap na NVMe?
Lepsze niż OOM — wolniejsze niż RAM. DB production — unikaj swap.
SMART na VPS?
Abstrakcja — nie widzisz fizycznego dysku. Polegaj na symptomach i support.
Duży rsync incoming?
Ingress też obciąża — transfer w planie.
Compression at rest?
Zależy od warstwy operatora — nie kontrolujesz bezpośrednio.
RAID0 w gościu?
Jeden vDisk — nie ma sensu RAID w gościu.
Migrate większy dysk?
Procedura panelu — czasem offline resize.
Dlaczego iowait rośnie w nocy?
Często backupy sąsiadów na współdzielonym storage NVMe Gen4. To nie „psujący się dysk” — kolejka I/O na backendzie. Twój backup też robi to innym — planuj okna. Monitoring trendu ważniejszy niż jeden test fio.
Czy większy dysk w planie = więcej IOPS?
Nie zawsze — sprawdź ofertę panelu. Często większy dysk to pojemność, nie gwarancja IOPS. Shared backend Sinlege w WAW — variance między godzinami uczciwie opisana, nie ukryta.
NVMe a swap?
Swap na NVMe lepszy niż OOM kill w pinch, ale na produkcji DB — dodaj RAM gościa. DDR5 4800 bez ECC na hoście; swap nie zastępuje backupu offsite restic.