ถ้าต้องการ virtual private server หรือ dedicated มีตัวเลือกเยอะ และตลาด flooded และ evolve ตลอด ไม่มี "best one" สำหรับทุกคน หรือ "best one" ที่ทุกอย่าง
Cloud providers บางตัว offer VPS storage เร็วที่สุด แต CPU power ไม่เก่ง Provider อื่น CPU performance ตลาดดีที่สุด แต storage devices ช้ากว่า ยิ่งไปกว่านั้น ทุกคนพยายามขโมยลูกค้าจากคู่แข่ง Provider storage ช้าอาจ upgrade devices กลาย best ในตลาด 6 เดือนหลัง แตด้วย benchmarks เปรียบเทียบ providers เลือกได้ว่าตัวไหน best สำหรับคุณตอนนี้
คำพูดนิดหน่อยเกี่ยวกับ Benchmarking
ปกติ adapt benchmarks สำหรับ specific use case พร้อม hardware ดู squeeze performance สูงสุด แต่กรณีนี้รัน generic tests อาจไม่ squeeze ทุกหยด potential แตเพราะรัน same parameters บน OS เดียวกัน ได้ real numbers เปรียบเทียบง่าย ว่า provider ไหน perform better หรือ worse ใน identical situations
Prerequisites
- ใช้ Ubuntu stable image ล่าสุดเป็น OS เวลาเขียนคือ 18.04 LTS ไม่สำคัญถ้าใช้ OS อื่นภายหลัง จุดเริ่มต้นร่วมกัน
- อาจ adapt commands บางอย่าง ถ้าทำ จะใช้ exact same parameters บน servers ทั้งหมด เพื่อ comparison ถูกต้อง
- Run benchmark เดียวกัน 2 ครั้งบนแต่ละ server Cloud providers บางตัว inconsistent results กรณีนี้หลีกเลี่ยง เพราะ sign guest OS isolation ไม่ดี หรือ squeeze clients มากเกินบน hardware เดียวกัน
- Tutorial assume ล็อกอินเป็น root ถ้า regular user ต้อง prefix
aptcommands ด้วย sudo เช่นapt update && apt install fioกลายsudo apt update && sudo apt install fio
Benchmark Server Storage
ก่อน ติดตั้ง benchmarking software
apt update && apt install fio
ถ้า error fio not found ไม่มี universe repository enabled เปิดด้วย apt install software-properties-common && add-apt-repository universe แล้วรันคำสั่งข้างบนอีกครั้ง
Sequential read เกิดตอนอ่าน data contiguous เช่น อ่านไฟล์ 4GB เริ่มจนจบ จะแสดง maximum read speed ที่ storage device และ filesystem ปัจจุบันทำได้ รัน sequential read test:
fio --name=seqread --readwrite=read --direct=1 --ioengine=libaio --bs=1M --size=2000M
ถ้าเสร็จภายใน 20 วินาที (มักเกิดถ้า storage บน SSD) ควรเพิ่ม --size ไฟล์อ่าน เพื่อผลแม่นยำ:
fio --name=seqread --readwrite=read --direct=1 --ioengine=libaio --bs=1M --size=8000M
ตัวเลขสำคัญต้องสนใจ: READ: bw ไฮไลท์ในภาพ
ทดสอบ sequential write speed:
fio --name=seqwrite --readwrite=write --direct=1 --ioengine=libaio --bs=1M --size=2000M
เช็คตัวเลขเดียวกัน
ทดสอบ cloud storage ภายใต้ stressful conditions สุด:
fio --name=randrw --readwrite=randrw --direct=1 --ioengine=libaio --bs=4k --size=200M --group_reporting --numjobs=8
เพิ่ม --size ถ้า test เร็วเกินไป bandwidth น้อยสำคัญ secondary
ก่อน ดู read: IOPS และ write: IOPS
Real-world example: server storage stressed อย่างนี้บน busy website large database constantly read/write
Benchmark Server CPU และ Memory
ไป Geekbench download page คัดลอก link latest Geekbench archive วางใน wget เช่น เวลาเขียน link คือ "https://cdn.geekbench.com/Geekbench-4.3.3-Linux.tar.gz" คำสั่งดาวน์โหลด Geekbench ไป server
wget https://cdn.geekbench.com/Geekbench-4.3.3-Linux.tar.gz
Extract ไฟล์จาก archive
tar -xzvf *.tar.gz
เปลี่ยนไป directory ที่ extract จะเทียบเท่า program version ที่หาได้ และ output ในคำสั่งก่อน
cd Geekbench-4.3.3-Linux
เวลาเขียน executable file ชื่อ geekbench4 แต่อาจเปลี่ยนอนาคต list files ใน current directory
ls
รัน benchmark แทนที่ executable name ถ้าจำเป็น
./geekbench4
ใช้เวลาจน tests ทั้งหมดเสร็จ ท้ายจะได้ link ดู results
Benchmark Network Bandwidth ของ Server
ติดตั้ง Speedtest client
apt install speedtest-cli
รัน benchmark
speedtest
ปกติ utility หา test server ใกล้ที่สุด ถ้า location detection fail สามารถ list servers ในประเทศด้วย:
speedtest --list | grep -i germany
เลือก number จากลิสต์ ส่งไปคำสั่งถัดไป:
speedtest --server 4462
หมายเหตุ: speedtest servers บางตัวอาจ bandwidth ไม่มาก ตอนนี้ ถ้า benchmark ค่าต่ำผิดปกติ ลอง server อื่น
สรุป
ครอบคลุม basic benchmarking CPU, memory, storage, network หลังแต่ละ test ได้ numbers เปรียบเทียบเลือก server ที่มีค่าดีที่สุดสำหรับ workload เฉพาะของคุณ