Nếu bạn cần server ảo riêng (VPS) hoặc server dedicated, bạn có nhiều lựa chọn. Vì thị trường bão hòa và liên tục phát triển, không có "server tốt nhất" cho mọi người — hoặc ít nhất, không có "server tốt nhất" ở mọi khía cạnh.
Một số nhà cung cấp đám mây có thể cung cấp VPS với lưu trữ nhanh nhất, nhưng sức mạnh CPU không tốt bằng. Nhà cung cấp khác có thể cung cấp hiệu suất CPU tốt nhất thị trường, nhưng thiết bị lưu trữ chậm hơn. Hơn nữa, với mọi người cố gắng giành khách từ đối thủ, nhà cung cấp lưu trữ chậm có thể nâng cấp thiết bị và trở thành tốt nhất thị trường, sáu tháng sau. Nhưng với benchmark, bạn có thể so sánh các nhà cung cấp khác nhau và chọn cái tốt nhất cho bạn lúc này.
Vài lời về Benchmarking
Bình thường, bạn sẽ điều chỉnh benchmark cho trường hợp sử dụng cụ thể, cùng phần cứng, và xem bạn có thể nén được bao nhiêu tiềm năng, mức hiệu suất tối đa của thiết bị. Tuy nhiên, trong trường hợp này bạn sẽ chạy test chung có thể không nén được hết tiềm năng. Nhưng vì chúng chạy với cùng tham số trên cùng hệ điều hành, bạn sẽ nhận được số liệu thực tế dễ so sánh và thấy nhà cung cấp nào tốt hơn hoặc kém hơn trong tình huống giống hệt nhau.
Điều kiện tiên quyết
- Dùng hình ảnh Ubuntu stable mới nhất làm hệ điều hành. Tại thời điểm viết, đây là 18.04 LTS. Không quan trọng nếu bạn dùng hệ điều hành khác sau. Điều này cho bạn điểm khởi đầu chung.
- Bạn có thể điều chỉnh một số lệnh trong hướng dẫn. Nếu làm vậy, nhớ dùng chính xác cùng tham số trên tất cả server để so sánh đúng.
- Ý tưởng tốt là chạy cùng benchmark hai lần trên mỗi server. Một số nhà cung cấp đám mây cho kết quả không nhất quán. Trong trường hợp này bạn nên tránh họ vì đó là dấu hiệu cách ly hệ điều hành khách không tốt, hoặc họ nhồi quá nhiều khách trên cùng phần cứng.
- Hướng dẫn giả định bạn đăng nhập root. Nếu bạn đăng nhập user thường, cần thêm sudo trước mọi lệnh
apt, nhưapt update && apt install fiothànhsudo apt update && sudo apt install fio
Benchmark lưu trữ Server
Trước tiên, cài phần mềm benchmark.
apt update && apt install fio
Nếu nhận thông báo fio không tìm thấy, nghĩa là bạn chưa bật kho universe. Bạn có thể bật bằng apt install software-properties-common && add-apt-repository universe và lặp lại lệnh trên để cài fio.
Đọc tuần tự (sequential read) xảy ra khi dữ liệu đọc liên tục. Ví dụ, khi đọc file 4GB từ đầu đến cuối, thường sẽ cho thấy tốc độ đọc tối đa có thể với thiết bị lưu trữ và hệ thống tệp hiện tại. Bạn có thể chạy test đọc tuần tự với:
fio --name=seqread --readwrite=read --direct=1 --ioengine=libaio --bs=1M --size=2000M
Nếu kết thúc trong chưa đến hai mươi giây (thường xảy ra nếu lưu trữ trên SSD), bạn nên tăng kích thước file đọc để có kết quả chính xác hơn như dòng dưới.
fio --name=seqread --readwrite=read --direct=1 --ioengine=libaio --bs=1M --size=8000M
Số quan trọng nhất bạn cần chú ý, trong kết quả này, là READ: bw, được highlight trong hình sau.
Để test tốc độ ghi tuần tự, chạy:
fio --name=seqwrite --readwrite=write --direct=1 --ioengine=libaio --bs=1M --size=2000M
Kiểm tra cùng các số.
Để test hiệu suất lưu trữ đám mây dưới điều kiện căng thẳng nhất, chạy test này:
fio --name=randrw --readwrite=randrw --direct=1 --ioengine=libaio --bs=4k --size=200M --group_reporting --numjobs=8
Giống trên, tăng --size nếu test kết thúc quá nhanh. Trong trường hợp này, băng thông (bandwidth) ít quan trọng hơn — coi nó thứ cấp.
Trước hết, nhìn read: IOPS và write: IOPS.
Ví dụ thực tế, lưu trữ server sẽ bị stress như vậy trên website rất bận với database rất lớn liên tục phải đọc và ghi.
Benchmark CPU và Memory Server
Truy cập trang tải Geekbench. Sao chép liên kết đến archive Geekbench mới nhất và dán vào lệnh wget. Ví dụ, tại thời điểm viết liên kết là "https://cdn.geekbench.com/Geekbench-4.3.3-Linux.tar.gz". Lệnh sau sẽ tải Geekbench về server.
wget https://cdn.geekbench.com/Geekbench-4.3.3-Linux.tar.gz
Giải nén file từ archive.
tar -xzvf *.tar.gz
Chuyển đến thư mục giải nén, sẽ tương đương phiên bản chương trình bạn tìm thấy và được xuất ra trong lệnh trước (như hình trên).
cd Geekbench-4.3.3-Linux
Tại thời điểm viết tên file thực thi là geekbench4, nhưng có thể thay đổi tương lai. Liệt kê file trong thư mục hiện tại.
ls
Chạy benchmark, thay tên file thực thi nếu cần.
./geekbench4
Sẽ mất một lúc cho đến khi tất cả test hoàn thành. Ở cuối bạn sẽ được cung cấp liên kết nơi xem kết quả.
Benchmark băng thông mạng Server
Cài client Speedtest.
apt install speedtest-cli
Chạy benchmark.
speedtest
Bình thường, tiện ích sẽ tìm server test gần server của bạn nhất. Nếu phát hiện vị trí thất bại, bạn có thể thủ công liệt kê server trong nước bạn với lệnh như:
speedtest --list | grep -i germany
Chọn số từ danh sách, và truyền cho lệnh tiếp theo như dòng code sau.
speedtest --server 4462
Lưu ý một số server dùng speedtest có thể không có nhiều băng thông lúc đó, nên nếu benchmark trả về giá trị quá thấp, thử server upload/download khác.
Kết luận
Điều này bao quát benchmark cơ bản CPU, memory, lưu trữ và mạng. Sau mỗi test, bạn có số liệu để so sánh và chọn server có giá trị tốt nhất cho workload cụ thể của bạn.