SSD VPS คืออะไร? ทำความเข้าใจพื้นที่จัดเก็บแบบแฟลช
SSD VPS คือเซิร์ฟเวอร์เสมือนที่ใช้พื้นที่จัดเก็บแบบแฟลชแทนดิสก์จานหมุน ช่วยเพิ่ม IOPS และลด latency พร้อม 3 คำถามที่ควรถามก่อนซื้อ
VPS ที่ใช้ SSD คืออะไร?
VPS ที่ใช้ SSD คือเซิร์ฟเวอร์เสมือนส่วนตัวที่ใช้หน่วยความจำแฟลชเป็นพื้นที่จัดเก็บข้อมูล แทนฮาร์ดดิสก์แบบจานหมุน SSD ย่อมาจาก solid state drive ซึ่งเป็นอุปกรณ์จัดเก็บข้อมูลที่สร้างจากชิปแฟลช NAND และไม่มีชิ้นส่วนเคลื่อนไหวอยู่ภายใน VPS ย่อมาจาก virtual private server ซึ่งหมายถึงส่วนที่แยกออกมาอย่างอิสระจากเครื่องโฮสต์จริงเครื่องหนึ่ง และทำงานด้วยระบบปฏิบัติการของตนเอง ผู้ให้บริการจำหน่ายให้คุณเสมือนเป็นเซิร์ฟเวอร์ทั้งเครื่อง เมื่อนำแนวคิดทั้งสองมารวมกัน ชื่อนี้สื่อถึงสิ่งหนึ่ง เมื่อเซิร์ฟเวอร์อ่านบล็อกข้อมูล จะไม่มีชิ้นส่วนเชิงกลที่ต้องเคลื่อนที่ก่อน
นี่คือคำจำกัดความทั้งหมด เนื้อหาด้านล่างจะอธิบายสิ่งที่ชื่อนี้ไม่ได้บอก เพราะคำว่า "SSD hosting" บนหน้าราคาไม่ได้ให้ข้อมูลมากนักเกี่ยวกับ storage array ที่อยู่เบื้องหลัง
หากคุณยังพิจารณาความแตกต่างระหว่าง VPS กับ virtual machine ทั่วไปอยู่ ความแตกต่างระหว่าง VPS, VM และ VPC คือหน้าที่ควรอ่านก่อน
เหตุใดผู้ให้บริการจึงแสดงความเร็วของพื้นที่จัดเก็บแทนขนาดพื้นที่จัดเก็บ
หน้าแผนบริการจะแสดงจำนวนคอร์ CPU, หน่วยความจำ, ขนาดดิสก์ และแบนด์วิดท์ จากนั้นจึงเพิ่มข้อมูลเกี่ยวกับดิสก์อีกหนึ่งรายการซึ่งไม่ได้เป็นขนาดเลย ผู้ให้บริการทำเช่นนี้เพราะหลายปีที่ผ่านมา ความจุไม่ใช่ตัวเลขที่สำคัญที่สุดของพื้นที่จัดเก็บอีกต่อไป ตัวเลข 2 รายการที่กำหนดว่าเซิร์ฟเวอร์จะตอบสนองอย่างไรคือ IOPS (จำนวนการดำเนินการรับส่งข้อมูลต่อวินาที) และเวลาแฝง (ระยะเวลาที่การดำเนินการหนึ่งรายการใช้กว่าจะได้รับผลลัพธ์กลับมา)
สาเหตุอยู่ที่ความแตกต่างทางกลไก ฮาร์ดดิสก์เก็บข้อมูลไว้บนจานแม่เหล็กที่หมุน และอ่านข้อมูลด้วยหัวอ่านที่ติดตั้งอยู่บนแขนกลแบบเคลื่อนที่ หากต้องการเข้าถึงบล็อกที่อยู่อีกตำแหน่งหนึ่งบนจาน แขนกลต้องเคลื่อนหัวอ่านไปยังตำแหน่งนั้น จากนั้นดิสก์ต้องหมุนจนกว่าเซกเตอร์ที่ถูกต้องจะมาอยู่ใต้หัวอ่าน ที่ความเร็ว 7200 รอบต่อนาที การหมุนครึ่งรอบใช้เวลาเฉลี่ยประมาณ 4 ms และการเคลื่อนหัวอ่านใช้เวลาเพิ่มอีกหลาย ms ส่วนแฟลชไม่มีแขนกลและไม่มีจานหมุน การอ่านจึงเป็นการค้นหาด้วยวงจรไฟฟ้าที่เสร็จสิ้นภายในเวลาเพียงหลักสิบไมโครวินาที
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
}
]ฮาร์ดดิสก์ความเร็ว 7200 rpm มีค่าที่ระบุไว้สำหรับการอ่านแบบสุ่มขนาด 4k ประมาณ 125 ครั้งต่อวินาที และการอ่านแต่ละครั้งใช้เวลาประมาณ 8 ms จึงจะส่งผลลัพธ์กลับมา ไดรฟ์ NVMe มีค่าที่ระบุไว้สำหรับการอ่านแบบเดียวกันเกือบ 600,000 ครั้ง โดยใช้เวลาประมาณ 0.08 ms ต่อครั้ง ส่วน SATA SSD มีค่าที่ระบุไว้เกือบ 90,000 ครั้ง โปรดมองตัวเลขเหล่านี้เป็นระดับความแตกต่าง ไม่ใช่เปอร์เซ็นต์การปรับปรุง
ข้อมูลนี้มีข้อควรระวัง 2 ประการ ตัวเลขเหล่านี้เป็นข้อมูลจำเพาะที่เผยแพร่สำหรับไดรฟ์ทั้งลูกของอุปกรณ์แต่ละประเภท จึงเป็นตัวเลขจากเอกสารของผู้ผลิต ไม่ใช่ค่าที่วัดได้จาก VPS และคุณจะไม่ได้ใช้ไดรฟ์ทั้งลูก พื้นที่จัดเก็บของคุณเป็นเพียงส่วนหนึ่งของอุปกรณ์ หรือส่วนหนึ่งของชุดอาร์เรย์ ซึ่งทำงานอยู่ข้างลูกค้ารายอื่นบนฮาร์ดแวร์เดียวกัน
คอลัมน์ทั้ง 2 ยังตอบคำถามคนละข้อ จึงควรอ่านประกอบกัน เวลาแฝงคือระยะเวลาที่คุณต้องรอสำหรับการดำเนินการหนึ่งรายการ IOPS คือจำนวนการดำเนินการที่ไดรฟ์สามารถประมวลผลพร้อมกันได้ แฟลชทำค่า IOPS ได้สูงด้วยการประมวลผลแบบขนาน เพราะชิปแฟลชจำนวนมากสามารถตอบสนองคำขอจำนวนมากได้พร้อมกัน ขณะที่คิวเชิงลึกช่วยให้ชิปเหล่านั้นทำงานต่อเนื่อง โปรแกรมแบบเธรดเดียวที่ส่งคำขออ่าน 1 รายการ รอผลลัพธ์ แล้วจึงส่งคำขอถัดไป จะไม่เห็นค่าด้านบนของกราฟนั้น แต่จะเห็นค่าจากคอลัมน์เวลาแฝงแทน
SSD, NVMe, SATA และ PCIe: คำ 4 คำในชั้นที่แตกต่างกัน 4 ชั้น
ผู้ซื้อมักสับสนคำเหล่านี้ เพราะแต่ละคำอธิบายองค์ประกอบคนละส่วนของระบบ
- SSD คือสื่อจัดเก็บข้อมูล หมายความว่าข้อมูลถูกจัดเก็บบนชิปแฟลช NAND ไม่ใช่จานแม่เหล็ก
- SATA คืออินเทอร์เฟซที่ออกแบบขึ้นในยุคของดิสก์เชิงกล มีความเร็วสูงสุด 6 Gbit/s ซึ่งให้ throughput จริงประมาณ 550 MB/s และคิวคำสั่งรองรับคำสั่งที่รอดำเนินการได้ 32 คำสั่ง
- NVMe (non-volatile memory express) คือโปรโตคอลที่ออกแบบมาโดยเฉพาะสำหรับแฟลช รองรับหลายคิว โดยแต่ละคิวมีคำสั่งได้หลายพันคำสั่ง จึงทำให้ CPU หลายคอร์สื่อสารกับไดรฟ์พร้อมกันได้ โดยไม่ต้องใช้คิวแคบเพียงคิวเดียวร่วมกัน
- PCIe (peripheral component interconnect express) คือบัสที่ NVMe ใช้งาน โดยเป็นช่องสัญญาณประเภทเดียวกับที่ใช้ติดตั้งการ์ดกราฟิก
ดังนั้น SSD แบบ SATA และ SSD แบบ NVMe ต่างก็จัดเก็บข้อมูลบนแฟลช ความแตกต่างอยู่ที่อินเทอร์เฟซที่ใช้งาน SSD แบบ SATA ยังเร็วกว่า hard disk ทุกประเภทมาก แต่คิวคำสั่งขนาด 32 คำสั่งจะจำกัดปริมาณงานแบบขนานที่สามารถรองรับได้ และงานแบบขนานคือจุดเด่นของแฟลช การเลือกว่ารุ่นใดคุ้มค่ากับค่าใช้จ่ายขึ้นอยู่กับลักษณะงานของคุณ โดย การตัดสินใจเลือกระหว่าง NVMe กับ SATA SSD จะอธิบายประเด็นนี้โดยละเอียด
แฟลชแบบภายในเครื่องหรือพื้นที่จัดเก็บข้อมูลที่เชื่อมต่อผ่านเครือข่าย?
มีการจำหน่ายรูปแบบที่แตกต่างกันมาก 2 รูปแบบภายใต้คำเรียกเดียวกัน
พื้นที่จัดเก็บข้อมูลภายในเครื่อง หมายถึงไดรฟ์แฟลชอยู่ภายในโฮสต์จริงเครื่องเดียวกับ VPS ของคุณ คำขอจะเดินทางผ่าน PCIe ภายในเครื่องเดียวและส่งกลับมาโดยตรง จึงรักษาค่าหน่วงเวลาไว้ที่ระดับหลายสิบไมโครวินาที
พื้นที่จัดเก็บข้อมูลที่เชื่อมต่อผ่านเครือข่าย หมายถึงดิสก์เสมือนของคุณอยู่บนคลัสเตอร์จัดเก็บข้อมูลแยกต่างหาก ซึ่งมักเป็น Ceph หรือ SAN (storage area network) และการอ่านและการเขียนทุกครั้งต้องผ่านเครือข่ายเพื่อเข้าถึงข้อมูล โดยทั่วไปผู้ให้บริการจะเรียกว่า "cloud block storage" หรือ "elastic volumes" แฟลชเป็นของจริง การเดินทางผ่านเครือข่ายก็เป็นของจริงเช่นกัน และจะเพิ่มเวลาให้กับทุกการดำเนินการ ดังนั้นค่าหน่วงเวลาจึงอยู่ที่หลายร้อยไมโครวินาทีระดับสูงหรือต่ำกว่าหลายมิลลิวินาที แทนที่จะอยู่ที่ระดับหลายสิบไมโครวินาที
ไม่มีรูปแบบใดเป็นคำตอบที่ผิด พื้นที่จัดเก็บข้อมูลผ่านเครือข่ายยังคงใช้งานได้เมื่อโฮสต์หยุดทำงาน เพราะข้อมูลไม่เคยอยู่บนโฮสต์นั้น ผู้ให้บริการจึงสามารถเริ่มเซิร์ฟเวอร์ของคุณบนฮาร์ดแวร์เครื่องอื่น และดิสก์จะย้ายตามไปด้วย Local NVMe เร็วกว่าและผูกอยู่กับเครื่องจริงเพียงเครื่องเดียว ดังนั้นหากฮาร์ดแวร์เครื่องนั้นขัดข้อง จะต้องกู้คืนจากข้อมูลสำรอง สอบถามว่าแพ็กเกจใช้รูปแบบใด แทบไม่มีใครสอบถามเรื่องนี้เลย
ความแตกต่างที่รู้สึกได้บนเซิร์ฟเวอร์จริง
งานเซิร์ฟเวอร์ส่วนใหญ่เป็นการอ่านและเขียนข้อมูลขนาดเล็กแบบสุ่ม ไม่ใช่การถ่ายโอนข้อมูลแบบต่อเนื่องขนาดยาว ด้วยเหตุนี้ ค่า MB/s ในข้อความโฆษณาจึงเป็นตัวเลขที่มีประโยชน์น้อยที่สุดบนหน้านั้น
- การ commit ของฐานข้อมูล ฐานข้อมูลที่รับประกันความคงทนของข้อมูลจะเรียกใช้
fsyncเมื่อ transaction ถูก commit จากนั้นจะรอให้ไดรฟ์ยืนยันว่าข้อมูลถูกจัดเก็บจริงแล้ว บนฮาร์ดดิสก์ การรอนี้ใช้เวลาเป็นมิลลิวินาที จึงทำให้ฐานข้อมูลขนาดเล็กทำได้เพียงไม่กี่ร้อย commit ต่อวินาที บน flash การรอแบบเดียวกันใช้เวลาเพียงเศษเสี้ยวของมิลลิวินาที ความแตกต่างจะเห็นได้ชัดที่สุดในกรณีนี้ ไม่ว่าจะใช้ PostgreSQL, MySQL หรือ SQLite เป็นฐานข้อมูลสำหรับ production - การติดตั้งแพ็กเกจ
apt installจะแตกไฟล์ขนาดเล็กหลายพันไฟล์และ sync ไฟล์เหล่านั้นลงดิสก์ไปพร้อมกัน งานเกือบทั้งหมดไม่ใช่การประมวลผลแบบต่อเนื่อง จึงถูกจำกัดด้วย IOPS - การดึงอิมเมจคอนเทนเนอร์
docker pullจะดึง layer ที่บีบอัดผ่านเครือข่าย แล้วแตกไฟล์เป็นไฟล์ขนาดเล็กหลายพันไฟล์ การดาวน์โหลดถูกจำกัดด้วยเครือข่าย ส่วนการแตกไฟล์ถูกจำกัดด้วยดิสก์ และหาก volume ทำงานช้า การแตกไฟล์จะเป็นขั้นตอนที่ต้องรอ - การบูตและรีบูต เมื่อเริ่มต้นระบบ จะอ่าน kernel และ initramfs จากนั้นอ่านไฟล์ unit ขนาดเล็กและ shared library หลายร้อยไฟล์ที่กระจายอยู่ทั่ว volume
ไม่มีกรณีใดเป็นการอ่านข้อมูลขนาดใหญ่แบบต่อเนื่อง volume ที่ส่งข้อมูลแบบต่อเนื่องได้ 500 MB/s แต่ให้บริการได้เพียง 3,000 IOPS ก็ยังรู้สึกช้าระหว่าง docker compose pull เพราะเวลารอจะถูกนับแยกตามไฟล์ ไม่ใช่ตามจำนวนเมกะไบต์
เหตุใดคำว่า "SSD cloud hosting" บนหน้าราคาจึงแทบไม่ให้ข้อมูลที่มีประโยชน์
คำนี้ระบุเพียงชนิดของสื่อจัดเก็บข้อมูลเท่านั้น ไม่ได้บอกว่าไดรฟ์รองรับอินเทอร์เฟซใด และไม่ได้บอกว่าไดรฟ์นั้นอยู่ในเครื่องเดียวกับเซิร์ฟเวอร์ของคุณหรือไม่ นอกจากนี้ยังไม่ได้บอกเพดานประสิทธิภาพที่แพ็กเกจของคุณใช้งานได้
เพดานดังกล่าวมีความสำคัญที่สุด แต่ผู้ให้บริการมักระบุไว้น้อยที่สุด ผู้ให้บริการจำกัด IOPS และ throughput ต่อ volume เนื่องจากโฮสต์หนึ่งเครื่องให้บริการลูกค้าหลายราย และเพื่อนบ้านที่ไม่จำกัดการใช้งานอาจแย่งทรัพยากรจนลูกค้ารายอื่นใช้งานไม่ได้ การจำกัดไว้ที่ IOPS ระดับไม่กี่พันบนฮาร์ดแวร์ที่รองรับได้หลายแสน IOPS เป็นเรื่องปกติและโปร่งใส แต่ข้อมูลนี้มักไม่ปรากฏในรายละเอียดแพ็กเกจ แพ็กเกจ 2 รายการอาจระบุว่าเป็น "SSD" เหมือนกัน แต่รายการหนึ่งอาจใช้ local NVMe โดยไม่มีการจำกัดต่อ volume ส่วนอีกรายการอาจใช้ volume จาก shared cluster ที่จำกัดไว้ที่ 3,000 IOPS
การจำกัดมี 2 รูปแบบ การจำกัดแบบ sustained เป็นเพดานคงที่ที่ไม่เปลี่ยนแปลง ส่วนการจำกัดแบบ burst ให้ค่าพื้นฐานต่ำและมีเครดิตที่ทำให้ใช้งานเกินเพดานได้ชั่วระยะหนึ่ง โดยเครดิตจะเติมกลับเมื่อ volume ไม่มีการใช้งาน การจำกัดแบบ burst อาจดูดีในการทดสอบ 5 นาที แต่ประสิทธิภาพจะลดลงเหลือค่าพื้นฐานระหว่างการนำเข้าฐานข้อมูลหรือการกู้คืนข้อมูลขนาดใหญ่ หากผู้ให้บริการระบุตัวเลขสูง ให้ถามว่าคุณสามารถรักษาระดับดังกล่าวไว้ได้นานเท่าใด
วิธีตรวจสอบว่า VPS ของคุณได้รับการจัดสรรทรัพยากรจริงอย่างไร
จากภายใน guest คุณจะเห็นได้เฉพาะข้อมูลที่ hypervisor แจ้งเท่านั้น
lsblk -d -o NAME,ROTA,MODEL,SIZE
cat /sys/block/vda/queue/rotationalแทนที่ vda ด้วยชื่ออุปกรณ์ lsblk ที่แสดงสำหรับดิสก์ของคุณ ไฟล์ ROTA และไฟล์ rotational จะอ่านค่า 0 เมื่อ kernel ได้รับแจ้งว่าอุปกรณ์ไม่ใช่อุปกรณ์แบบหมุน และจะอ่านค่า 1 เมื่อได้รับแจ้งในทางตรงกันข้าม ดิสก์เสมือนกำหนดแฟล็กนี้จากข้อมูลที่ hypervisor โฆษณาไว้ ดังนั้นค่าดังกล่าวจึงอธิบายอุปกรณ์เสมือน ไม่ใช่ฮาร์ดแวร์จริงที่อยู่เบื้องหลัง โดยปกติ MODEL จะว่างเปล่าสำหรับดิสก์ virtio เช่น vda หรือเป็นสตริงทั่วไป เช่น QEMU HARDDISK บนตัวควบคุม SATA ที่จำลองขึ้น guest ไม่ได้ถูกออกแบบให้มองเห็นอาร์เรย์ของ host และจะมองไม่เห็นจริง
ดังนั้นให้ใช้แฟล็กนี้เป็นเพียงข้อมูลเบื้องต้น และวัดประสิทธิภาพส่วนที่เหลือ ให้ทดสอบการอ่านหรือเขียนแบบสุ่มขนาด 4k ด้วย fio กับไฟล์บน volume โดยใช้ queue depth ที่แอปพลิเคชันของคุณใช้งานจริง และทดสอบให้นานพอที่จะใช้ burst credit จนหมด การทำ Benchmark VPS อย่างถูกต้อง มีคำสั่ง fio และข้อผิดพลาดทั่วไปที่ทำให้ได้ตัวเลขดูดีเกินจริง
ก่อนซื้อควรถามผู้ให้บริการ 3 คำถาม
- พื้นที่จัดเก็บอยู่ภายใน hypervisor หรือเชื่อมต่อผ่านเครือข่าย? คำตอบนี้เป็นตัวกำหนดค่าต่ำสุดของ latency และกำหนดว่าจะเกิดอะไรขึ้นกับข้อมูลของคุณเมื่อ physical host ขัดข้อง ผู้ให้บริการที่ตอบคำถามนี้ได้อย่างชัดเจนย่อมได้พิจารณาเรื่องนี้ไว้แล้ว
- volume ของฉันมีขีดจำกัด IOPS เท่าใด? ขอเป็นตัวเลข คำว่า "ไม่จำกัด" และ "ระดับองค์กร" ไม่ใช่ตัวเลข หากไม่มีการจำกัดจริง ให้ถามว่าอะไรจะป้องกันไม่ให้ผู้เช่ารายอื่นบน host เดียวกันใช้ทรัพยากรของ array ทั้งหมดในช่วงเวลาที่ทำ backup
- ขีดจำกัดดังกล่าวเป็นค่าที่รองรับต่อเนื่องหรือเป็นค่า burst? หากเป็นค่า burst ให้ถามค่า baseline และระยะเวลาของ burst ค่า baseline คือค่าที่งานประจำคืนของคุณจะต้องใช้งานจริง ดังนั้นควรวางแผนโดยอิงจากค่านี้
Flash เสื่อมสภาพหรือไม่ และเป็นปัญหาของคุณหรือไม่?
เซลล์ Flash รองรับรอบการเขียนได้จำนวนจำกัด ดังนั้นไดรฟ์จึงระบุค่าความทนทานเป็น TBW (terabytes written) หรือ DWPD (drive writes per day) ไดรฟ์จะกระจายการเขียนไปยังเซลล์ต่าง ๆ อย่างสม่ำเสมอ ซึ่งเรียกว่า wear levelling และจะสำรองบล็อกไว้เพื่อทดแทนเซลล์ที่เสียหาย ใน VPS การสึกหรอเป็นปัญหาของผู้ให้บริการ ผู้ให้บริการจะตรวจสอบตัวนับ SMART บนไดรฟ์ของตนเอง และเปลี่ยนฮาร์ดแวร์ก่อนที่ค่าความทนทานจะหมดอายุ ปัญหาของคุณมีมาก่อน Flash ไดรฟ์ไม่ใช่ข้อมูลสำรอง และ redundancy ที่อยู่ใต้ volume ของคุณก็ไม่ใช่ข้อมูลสำรองเช่นกัน เพราะระบบจะคัดลอกการลบข้อมูลอย่างถูกต้องเช่นเดียวกับการคัดลอกข้อมูล
สิ่งที่คุณกำลังแลกเปลี่ยนจริง ๆ คือราคาต่อ gigabyte Flash มีราคาต่อ gigabyte สูงกว่าดิสก์แบบจานหมุน ดังนั้นแผน SSD มักให้ความจุน้อยกว่าแผนฮาร์ดดิสก์ที่มีราคาเท่ากัน หากคุณต้องการพื้นที่จำนวนมากสำหรับสื่อหรือไฟล์เก็บถาวร ให้ใช้ volume ความเร็วสูงที่มีขนาดเล็ก และเก็บข้อมูลส่วนใหญ่ไว้ในพื้นที่ที่มีราคาถูกกว่า ซึ่งสอดคล้องกับแนวทาง เก็บข้อมูลสำรองไว้นอกเซิร์ฟเวอร์ สำหรับการดูว่าพื้นที่จัดเก็บข้อมูลรวมอยู่ในค่าใช้จ่ายส่วนอื่นอย่างไร ค่าใช้จ่ายจริงของ VPS จะแจกแจงรายการค่าใช้จ่ายต่าง ๆ
FAQ
SSD VPS เหมือนกับ NVMe VPS หรือไม่?
NVMe VPS ทุกเครื่องเป็น SSD VPS เนื่องจากไดรฟ์ NVMe ใช้หน่วยความจำแฟลช แต่ SSD VPS ไม่ได้เป็น NVMe VPS ทุกเครื่อง แพ็กเกจที่โฆษณาว่าเป็น "SSD" อาจใช้ SATA SSD ซึ่งเป็นหน่วยความจำแฟลชที่เชื่อมต่อผ่านอินเทอร์เฟซที่ออกแบบมาสำหรับดิสก์เชิงกล โดยมีคิวคำสั่ง 32 รายการและความเร็วสูงสุดใกล้เคียง 550 MB/s ทั้งสองแบบเร็วกว่าฮาร์ดดิสก์มาก หากความแตกต่างนี้มีผลต่อเวิร์กโหลดของคุณ ให้สอบถามผู้ให้บริการว่าแพ็กเกจใช้แบบใด แทนการพิจารณาจากชื่อแพ็กเกจ
SSD VPS ทำให้เว็บไซต์เร็วขึ้นหรือไม่?
SSD VPS ทำให้การทำงานกับดิสก์เร็วขึ้นเท่านั้น หน้าเว็บที่เรียกใช้ฐานข้อมูลหลายครั้งต่อคำขอจะทำงานเร็วขึ้น เนื่องจากคำสั่งค้นหาและการ commit เหล่านั้นเป็นการทำ I/O แบบสุ่มขนาดเล็ก หน้าเว็บที่ให้บริการจากหน่วยความจำหรือแคชจะไม่แตะดิสก์ระหว่างส่งข้อมูลออกไป ดังนั้นความเร็วจะเปลี่ยนแปลงเพียงเล็กน้อย ควรวัดก่อนว่าส่วนใดของคำขอทำงานช้า ก่อนจ่ายเงินเพิ่มเพื่อแก้ปัญหาด้วยพื้นที่จัดเก็บข้อมูล
จะตรวจสอบได้อย่างไรว่า VPS ใช้พื้นที่จัดเก็บข้อมูลแบบ SSD จริง?
คุณไม่สามารถยืนยันฮาร์ดแวร์จริงจากภายใน guest ได้ lsblk -d -o NAME,ROTA แสดงข้อมูลที่อุปกรณ์เสมือนประกาศ และ hypervisor เป็นผู้กำหนดค่านี้ ดังนั้นการเห็น 0 จึงเป็นเพียงข้อบ่งชี้ ไม่ใช่หลักฐาน การตรวจสอบที่ใช้งานได้จริงคือการวัดผล โดยเรียกใช้ fio พร้อมเวิร์กโหลดการอ่านแบบสุ่มขนาด 4k เป็นเวลาหลายนาที แล้วดูค่าความหน่วงที่รายงาน การอ่านแบบสุ่มที่มีความหน่วงระดับมิลลิวินาทีหลักเดียวบ่งชี้ว่าเป็นดิสก์แบบจานหมุนหรือวอลุ่มเครือข่ายที่มีความแออัด ส่วนความหน่วงระดับหลายสิบไมโครวินาทีบ่งชี้ว่าเป็นแฟลชภายในเครื่อง
พื้นที่จัดเก็บข้อมูล SSD ผ่านเครือข่ายแย่กว่า NVMe ภายในเครื่องหรือไม่?
พื้นที่จัดเก็บข้อมูลแบบนี้ทำงานช้ากว่าต่อการดำเนินการหนึ่งครั้ง และมีลักษณะการขัดข้องแตกต่างกัน รอบการสื่อสารผ่านเครือข่ายจะเพิ่มเข้ามาในทุกการอ่านและการเขียน ทำให้ความหน่วงสูงขึ้น แม้ว่าทั้งสองแบบจะใช้หน่วยความจำแฟลชก็ตาม ข้อแลกเปลี่ยนคือข้อมูลของคุณไม่ได้อยู่บนโฮสต์จริงเพียงเครื่องเดียว ดังนั้นเมื่อโฮสต์ขัดข้อง วอลุ่มจะไม่ขัดข้องตามไปด้วย และผู้ให้บริการสามารถสร้าง snapshot และดำเนินการ live migration ได้ง่ายกว่า เลือกแฟลชภายในเครื่องสำหรับฐานข้อมูลที่ไวต่อความหน่วง เลือกพื้นที่จัดเก็บข้อมูลผ่านเครือข่ายเมื่อการคงอยู่ของวอลุ่มสำคัญกว่าความแตกต่างระดับไมโครวินาที