Apakah VPS SSD? Penjelasan Storan Memori Kilat
Fahami maksud VPS SSD, perbezaannya daripada cakera berputar, serta manfaat IOPS dan latensi rendah. Semak tiga soalan penting sebelum membeli pelan.
Apakah VPS SSD?
VPS SSD ialah pelayan persendirian maya yang storannya menggunakan memori kilat dan bukannya cakera keras berputar. SSD bermaksud solid state drive: storan yang dibina daripada cip kilat NAND tanpa bahagian bergerak di dalamnya. VPS bermaksud virtual private server: satu bahagian terpencil pada mesin hos fizikal yang menjalankan sistem pengendaliannya sendiri dan dijual kepada anda seolah-olah ia sebuah pelayan lengkap. Gabungan kedua-duanya membawa satu maksud. Apabila pelayan anda membaca blok data, tiada komponen mekanikal perlu bergerak terlebih dahulu.
Itulah definisi sepenuhnya. Semua perkara di bawah menerangkan perkara yang tidak dinyatakan oleh label tersebut, kerana perkataan "SSD hosting" pada halaman harga tidak banyak menerangkan tentang tatasusunan storan di belakangnya.
Jika anda masih memahami perbezaan VPS daripada mesin maya biasa, perbezaan antara VPS, VM dan VPC ialah halaman yang lebih sesuai untuk dibaca terlebih dahulu.
Mengapa penyedia hos mengiklankan kelajuan storan, bukan saiz storan
Halaman pelan menyenaraikan teras CPU, memori, saiz cakera dan lebar jalur, kemudian menambah satu perkataan tentang cakera yang langsung bukan ukuran saiz. Penyedia hos berbuat demikian kerana kapasiti bukan lagi angka yang paling penting tentang storan sejak bertahun-tahun lalu. Dua angka yang menentukan prestasi pelayan ialah IOPS (operasi input/output sesaat) dan kependaman (tempoh yang diperlukan untuk satu operasi kembali).
Perbezaan mekanikal ialah sebabnya. Cakera keras menyimpan data pada piring berputar dan membacanya dengan kepala pada lengan yang bergerak. Untuk mencapai blok di tempat lain pada piring, lengan perlu melakukan carian, kemudian cakera perlu berputar sehingga sektor yang betul berada di bawah kepala. Pada 7200 putaran seminit, separuh putaran mengambil purata kira-kira 4 ms, dan proses carian menambah beberapa milisaat lagi. Flash tidak mempunyai lengan atau piring, jadi bacaan ialah carian elektrik yang kembali dalam puluhan mikrosaat.
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
}
]Cakera keras 7200 rpm dinilai untuk kira-kira 125 bacaan rawak 4k sesaat, dan satu bacaan mengambil kira-kira 8 ms untuk kembali. Pemacu NVMe dinilai hampir 600,000 bacaan yang sama, pada kira-kira 0.08 ms setiap satu. SSD SATA di antara kedua-duanya dinilai hampir 90,000. Fahami angka ini sebagai perbezaan mengikut tertib magnitud, bukan sebagai peningkatan peratusan.
Terdapat dua amaran tentang data itu. Ini ialah spesifikasi yang diterbitkan untuk pemacu penuh bagi setiap kelas, jadi angka tersebut datang daripada helaian spesifikasi pengeluar dan bukan hasil pengukuran pada VPS. Anda juga tidak pernah mendapat keseluruhan pemacu: volum anda ialah sebahagian daripada satu peranti atau sebahagian daripada satu tatasusunan, yang berkongsi perkakasan sama dengan pelanggan lain.
Kedua-dua lajur itu juga menjawab soalan yang berbeza, jadi baca kedua-duanya bersama-sama. Kependaman ialah tempoh anda menunggu untuk satu operasi. IOPS ialah bilangan operasi yang boleh dikendalikan oleh pemacu pada masa yang sama. Flash mencapai angka IOPS yang tinggi melalui pemprosesan selari, kerana banyak cip flash menjawab banyak permintaan serentak sementara baris gilir yang panjang memastikan cip tersebut terus sibuk. Program berutas tunggal yang mengeluarkan satu bacaan, menunggunya selesai, kemudian mengeluarkan bacaan seterusnya tidak akan mencapai angka tertinggi dalam carta itu. Program tersebut mengalami nilai dalam lajur kependaman.
SSD, NVMe, SATA dan PCIe: empat istilah pada empat lapisan yang berbeza
Pembeli sering keliru dengan istilah ini kerana setiap istilah menerangkan bahagian sistem yang berbeza.
- SSD ialah medium. Istilah ini bermaksud data disimpan pada cip flash NAND dan bukannya pada plat magnet.
- SATA ialah antara muka yang direka pada era cakera mekanikal. Kelajuan maksimumnya ialah 6 Gbit/s, iaitu kira-kira 550 MB/s bagi kadar pemprosesan sebenar, dan baris gilir arahannya menyimpan 32 arahan yang belum selesai.
- NVMe (non-volatile memory express) ialah protokol yang direka khusus untuk flash. Protokol ini menyokong banyak baris gilir yang setiap satunya boleh menyimpan beribu-ribu arahan. Oleh itu, beberapa teras CPU boleh berkomunikasi dengan pemacu pada masa yang sama tanpa berkongsi satu baris gilir yang sempit.
- PCIe (peripheral component interconnect express) ialah bas yang digunakan oleh NVMe, iaitu jenis lorong yang sama untuk memasang kad grafik.
Jadi, SSD SATA dan SSD NVMe kedua-duanya menyimpan data pada flash. Perbezaannya ialah antara muka yang digunakan. SSD SATA masih jauh lebih pantas berbanding mana-mana cakera keras, tetapi baris gilir 32 arahan itu mengehadkan jumlah kerja selari yang boleh dilakukannya. Kerja selari ialah perkara yang paling sesuai dilakukan oleh flash. Pilihan yang berbaloi bergantung pada beban kerja anda, dan perbandingan SSD NVMe dengan SATA menghuraikannya dengan sewajarnya.
Flash setempat atau storan terpasang pada rangkaian?
Dua susunan yang sangat berbeza dijual menggunakan istilah yang sama.
Storan setempat bermaksud pemacu flash berada di dalam hos fizikal yang sama dengan VPS anda. Permintaan bergerak melalui PCIe dalam satu mesin dan kembali terus. Sebab itu kependaman kekal pada puluhan mikrosaat.
Storan terpasang pada rangkaian bermaksud cakera maya anda berada pada kluster storan berasingan, biasanya Ceph atau SAN (rangkaian kawasan storan), dan setiap operasi baca serta tulis merentasi rangkaian untuk mencapainya. Penyedia biasanya memanggilnya "storan blok awan" atau "volum anjal". Flash itu sebenar. Perjalanan melalui rangkaian juga sebenar, dan ditambah pada setiap operasi. Oleh itu, kependaman berada pada ratusan mikrosaat yang tinggi atau milisaat yang rendah, bukannya puluhan mikrosaat.
Kedua-duanya bukan pilihan yang salah. Storan rangkaian terus tersedia apabila hos gagal, kerana data tidak pernah berada pada hos tersebut. Penyedia boleh memulakan pelayan anda pada perkakasan lain dan cakera itu akan mengikutinya. Local NVMe lebih pantas dan terikat pada satu mesin fizikal. Oleh itu, kegagalan perkakasan memerlukan pemulihan daripada sandaran. Tanyakan jenis storan yang digunakan oleh sesuatu pelan. Hampir tiada siapa yang berbuat demikian.
Perbezaan yang dirasai pada pelayan sebenar
Kerja pelayan biasanya melibatkan pembacaan dan penulisan rawak yang kecil, bukan pemindahan berjujukan yang panjang. Sebab itu angka MB/s dalam bahan pemasaran ialah angka yang paling kurang berguna pada halaman tersebut.
- Commit pangkalan data. Pangkalan data yang menjanjikan ketahanan data akan memanggil
fsyncapabila transaksi dilakukan, kemudian menunggu pemacu mengesahkan bahawa data benar-benar telah disimpan. Pada cakera keras, masa menunggu itu mengambil masa beberapa milisaat, yang mengehadkan pangkalan data kecil kepada kadar rendah ratusan commit sesaat. Pada storan flash, masa menunggu yang sama hanya mengambil sebahagian kecil daripada satu milisaat. Di sinilah perbezaannya paling ketara, sama ada anda menjalankan PostgreSQL, MySQL atau SQLite sebagai pangkalan data produksi. - Pemasangan pakej.
apt installmenyahbungkus ribuan fail kecil dan menyegerakkannya ke cakera semasa proses berjalan. Hampir tiada kerja itu dilakukan secara berjujukan, jadi prestasinya bergantung pada IOPS. - Penarikan imej kontena.
docker pullmengambil lapisan termampat melalui rangkaian, kemudian mengekstraknya ke dalam ribuan fail kecil. Muat turun terikat pada kelajuan rangkaian. Pengekstrakan terikat pada kelajuan cakera, dan pada volum yang perlahan, pengekstrakan ialah bahagian yang menyebabkan anda perlu menunggu. - But dan but semula. Proses permulaan membaca kernel dan initramfs, kemudian ratusan fail unit kecil serta pustaka dikongsi yang bertaburan merentasi volum.
Tiada satu pun daripada operasi itu merupakan pembacaan berjujukan yang besar. Volum yang menstrim pada kelajuan 500 MB/s tetapi hanya menyediakan 3,000 IOPS masih akan terasa perlahan semasa docker compose pull, kerana masa menunggu dikira bagi setiap fail, bukan bagi setiap megabait.
Mengapa "SSD cloud hosting" pada halaman harga hampir tidak memberikan maklumat
Istilah itu hanya menerangkan medium. Istilah itu tidak menerangkan antara muka yang digunakan oleh pemacu tersebut, atau sama ada pemacu itu berada dalam mesin yang sama dengan pelayan anda. Istilah itu juga tidak menerangkan had maksimum yang dibenarkan untuk pelan anda.
Had maksimum itu paling penting, tetapi paling jarang diiklankan. Penyedia mengehadkan IOPS dan throughput bagi setiap volume kerana satu hos melayani ramai pelanggan, dan jiran yang tidak mempunyai had boleh menghabiskan sumber pelanggan lain. Had beberapa ribu IOPS pada perkakasan yang mampu mencapai ratusan ribu IOPS adalah perkara biasa dan telus, tetapi tidak dipaparkan dalam perihalan pelan. Dua pelan boleh sama-sama menyatakan "SSD", sedangkan satu menggunakan NVMe tempatan tanpa had bagi setiap volume dan satu lagi menggunakan volume kluster dikongsi yang dihadkan kepada 3,000 IOPS.
Had datang dalam dua bentuk. Had berterusan ialah had tetap yang tidak berubah. Had burst memberikan baseline yang rendah serta kredit yang membolehkan anda melebihi had itu buat sementara, dan kredit tersebut diisi semula apabila volume tidak aktif. Had burst kelihatan sangat baik dalam ujian selama lima minit, kemudian turun kepada baseline ketika import pangkalan data atau pemulihan besar sedang berjalan. Jika penyedia menyatakan nombor yang besar, tanyakan berapa lama anda dibenarkan mengekalkan kelajuan tersebut.
Cara menyemak perkara yang sebenarnya diberikan kepada VPS anda
Dari dalam tetamu, anda hanya boleh melihat perkara yang dimaklumkan oleh hipervisor kepada anda.
lsblk -d -o NAME,ROTA,MODEL,SIZE
cat /sys/block/vda/queue/rotationalGantikan vda dengan nama peranti lsblk yang dicetak untuk cakera anda. ROTA dan fail rotational membaca 0 apabila kernel telah dimaklumkan bahawa peranti itu bukan berputar, dan 1 apabila kernel telah dimaklumkan sebaliknya. Cakera maya menetapkan bendera itu berdasarkan perkara yang diiklankan oleh hipervisor. Oleh itu, bendera itu menerangkan peranti maya, bukan perkakasan fizikal di bawahnya. MODEL biasanya kosong untuk cakera virtio seperti vda, atau berupa rentetan umum seperti QEMU HARDDISK pada pengawal SATA yang diemulasikan. Tetamu tidak sepatutnya dapat melihat tatasusunan hos, dan memang tidak dapat melihatnya.
Oleh itu, anggap bendera itu sebagai petunjuk dan ukur perkara yang lain. Jalankan ujian rawak 4k dengan fio terhadap fail pada volum, menggunakan kedalaman baris gilir yang benar-benar digunakan oleh aplikasi anda, dan jalankan ujian itu cukup lama untuk menggunakan semua kredit letusan. Menanda aras VPS dengan betul mengandungi arahan fio serta kesilapan lazim yang menghasilkan nombor yang kelihatan lebih baik daripada keadaan sebenar.
Tiga soalan untuk ditanyakan kepada penyedia sebelum anda membeli
- Adakah storan berada pada hypervisor, atau disambungkan melalui rangkaian? Jawapannya menetapkan had minimum kependaman anda dan menentukan perkara yang berlaku pada data anda apabila hos fizikal gagal. Penyedia yang menjawabnya dengan jelas sudah mempertimbangkan perkara ini.
- Apakah had IOPS pada volum saya? Minta satu angka. "Tanpa had" dan "bertaraf perusahaan" bukan angka. Jika benar-benar tiada had, tanyakan perkara yang menghalang jiran pada hos yang sama daripada menggunakan keseluruhan tatasusunan semasa tempoh sandaran mereka.
- Adakah had itu berterusan atau burst? Jika had itu menyokong burst, tanyakan nilai asas dan tempoh burst tersebut. Nilai asas ialah angka yang akan digunakan oleh tugas malam anda, jadi angka itulah yang perlu dijadikan asas perancangan.
Adakah flash haus, dan adakah itu masalah anda?
Sel flash menerima bilangan kitaran tulis yang terhad. Oleh itu, pemacu menerbitkan penarafan ketahanan dalam TBW (terabait yang ditulis) atau DWPD (tulisan pemacu sehari). Pemacu mengagihkan operasi tulis secara sekata merentasi selnya. Proses ini dipanggil perataan haus. Pemacu juga menyimpan blok ganti sebagai simpanan untuk menggantikan sel yang gagal. Pada VPS, haus ialah masalah penyedia. Penyedia memantau pembilang SMART pada pemacu mereka sendiri dan menggantikan perkakasan sebelum penarafan ketahanan tercapai. Masalah anda telah wujud sebelum flash. Pemacu bukan sandaran. Lebihan di bawah volum anda juga bukan sandaran kerana ia menyalin pemadaman sama tepat seperti menyalin data.
Pertukaran yang sebenarnya anda buat ialah harga bagi setiap gigabait. Flash berharga lebih tinggi bagi setiap gigabait berbanding cakera berputar. Oleh itu, pelan SSD biasanya menawarkan kapasiti yang lebih kecil berbanding pelan cakera keras pada harga yang sama. Jika anda memerlukan ruang pukal untuk media atau arkib, kekalkan volum pantas dalam saiz kecil dan letakkan data pukal di tempat yang lebih murah. Susunan ini juga sesuai untuk menyimpan sandaran di luar pelayan. Untuk mengetahui kedudukan storan dalam keseluruhan bil, kos sebenar VPS menghuraikan setiap item caj.
FAQ
Adakah VPS SSD sama dengan VPS NVMe?
Setiap VPS NVMe ialah VPS SSD kerana pemacu NVMe menggunakan denyar. Sebaliknya tidak semestinya benar. Pelan yang diiklankan sebagai "SSD" mungkin menggunakan SSD SATA. SSD ini ialah storan denyar melalui antara muka yang direka untuk cakera mekanikal, dengan baris gilir 32 arahan dan had hampir 550 MB/s. Kedua-duanya jauh lebih pantas daripada cakera keras. Jika perbezaan itu penting kepada beban kerja anda, tanya pembekal jenis storan yang digunakan oleh pelan tersebut. Jangan bergantung pada nama pelan.
Adakah VPS SSD menjadikan laman web saya lebih pantas?
VPS SSD hanya mempercepatkan operasi cakera. Ia tidak mempercepatkan operasi lain. Halaman yang menjalankan beberapa pertanyaan pangkalan data bagi setiap permintaan menjadi lebih pantas kerana pertanyaan dan operasi commit tersebut ialah I/O rawak bersaiz kecil. Halaman yang disediakan daripada memori atau cache tidak mengakses cakera semasa dihantar, jadi perubahan kelajuannya sangat kecil. Ukur bahagian permintaan yang perlahan sebelum membayar storan untuk menyelesaikan masalah tersebut.
Bagaimanakah saya boleh menyemak sama ada VPS saya benar-benar menggunakan storan SSD?
Dari dalam guest, anda tidak boleh mengesahkan perkakasan fizikal. lsblk -d -o NAME,ROTA menunjukkan perkara yang diiklankan oleh peranti maya, dan hypervisor menentukan nilai tersebut. Oleh itu, 0 ialah petunjuk, bukan bukti. Kaedah praktikal ialah membuat pengukuran. Jalankan fio dengan beban kerja bacaan rawak 4k selama beberapa minit, kemudian lihat kependaman yang dilaporkannya. Bacaan rawak dalam julat milisaat satu digit menunjukkan cakera berputar atau volum rangkaian yang sesak. Bacaan dalam puluhan mikrosaat menunjukkan penggunaan denyar setempat.
Adakah storan SSD yang disambungkan melalui rangkaian lebih teruk daripada NVMe setempat?
Storan tersebut lebih perlahan bagi setiap operasi dan mengalami kegagalan dengan cara yang berbeza. Perjalanan pergi balik melalui rangkaian ditambah pada setiap bacaan dan penulisan. Oleh itu, kependamannya lebih tinggi walaupun kedua-duanya menggunakan denyar. Sebagai pertukaran, data anda tidak berada pada satu hos fizikal sahaja. Kegagalan hos tidak akan menyebabkan volum tersebut turut tidak tersedia. Selain itu, snapshot dan migrasi langsung lebih mudah dilakukan oleh pembekal. Pilih denyar setempat untuk pangkalan data yang sensitif terhadap kependaman. Pilih storan rangkaian apabila kelangsungan volum lebih penting daripada perbezaan mikrosaat.