Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธี Benchmark Linux Servers เลือกตัวที่ดีที่สุด

ถ้าต้องการ 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 apt commands ด้วย 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 เฉพาะของคุณ