Benchmark Sysbench
Kết quả benchmark dưới đây cho thấy các engine được hỗ trợ hoạt động ra sao trên những cấu hình tính toán khác nhau, để bạn có điểm khởi đầu khi chọn kích thước instance.
Các con số này là dữ liệu tham khảo, không phải cam kết hiệu năng. Thông lượng thực tế phụ thuộc workload, schema, cách đánh index, tỷ lệ đọc/ghi, và cấu hình storage cùng network của bạn. Hãy kiểm thử bằng chính workload của mình trước khi chốt cấu hình cho production.
Đã đo những gì
Benchmark đánh giá hiệu năng đọc và ghi OLTP, cho thấy thông lượng tăng thế nào khi CPU và bộ nhớ tăng, và đưa ra các con số so sánh được giữa các flavor.
Engine được đo: PostgreSQL, MySQL, MariaDB, MongoDB và Redis.
| Chỉ số | Ý nghĩa |
|---|---|
| Sysbench Read | Tổng số truy vấn đọc thực hiện trong bài test. |
| Sysbench Write | Tổng số truy vấn ghi thực hiện trong bài test. |
| QPS (Queries Per Second) | Số truy vấn xử lý trung bình mỗi giây. |
| TPS (Transactions Per Second) | Số transaction hoàn tất trung bình mỗi giây. |
QPS và TPS càng cao thì thông lượng dưới workload đã test càng lớn.
PostgreSQL
Môi trường test
| Tham số | Giá trị |
|---|---|
| Công cụ benchmark | Sysbench (OLTP Read/Write) |
| Số bảng | 64 |
| Số dòng mỗi bảng | 1,000,000 |
| Loại workload | Read/Write |
| Số thread | Cấu hình theo từng kích thước instance |
| Phiên bản PostgreSQL | PostgreSQL 17 |
Kết quả
| Flavor (vCPU/RAM) | Threads | Sysbench Read | Sysbench Write | QPS | TPS |
|---|---|---|---|---|---|
| 2C4G | 64 | 2,595,600 | 741,590 | 6,177.66 | 308.88 |
| 2C8G | 64 | 2,481,276 | 708,929 | 5,905.53 | 295.27 |
| 4C8G | 64 | 3,189,018 | 911,134 | 7,589.71 | 379.48 |
| 8C16G | 64 | 4,829,286 | 1,379,738 | 11,496.20 | 574.79 |
| 8C32G | 64 | 5,679,842 | 1,622,732 | 13,519.46 | 675.94 |
| 16C32G | 64 | 6,448,036 | 1,842,199 | 15,350.46 | 767.49 |
| 16C64G | 64 | 6,926,948 | 1,979,031 | 16,489.02 | 824.41 |
MySQL
Môi trường test
| Tham số | Giá trị |
|---|---|
| Công cụ benchmark | Sysbench (OLTP Read/Write) |
| Số bảng | 64 |
| Số dòng mỗi bảng | 1,000,000 |
| Loại workload | Read/Write |
| Số thread | Cấu hình theo từng kích thước instance |
| Phiên bản MySQL | MySQL 8.0.42 |
Kết quả
| Flavor (vCPU/RAM) | Threads | Sysbench Read | Sysbench Write | QPS | TPS |
|---|---|---|---|---|---|
| 4C8G | 16 | 6,814,500 | 1,947,000 | 16,224.39 | 811.22 |
| 8C16G | 32 | 9,748,144 | 2,785,184 | 23,209.29 | 1,160.46 |
| 8C32G | 32 | 9,423,834 | 2,692,524 | 22,430.67 | 1,121.53 |
| 16C32G | 64 | 9,786,238 | 2,796,068 | 23,289.48 | 1,164.47 |
MariaDB
Môi trường test
| Tham số | Giá trị |
|---|---|
| Công cụ benchmark | Sysbench (OLTP Read/Write) |
| Số bảng | 64 |
| Số dòng mỗi bảng | 1,000,000 |
| Loại workload | Read/Write |
| Số thread | Cấu hình theo từng kích thước instance |
| Phiên bản MariaDB | MariaDB 10.6 |
Kết quả
| Flavor (vCPU/RAM) | Threads | Sysbench Read | Sysbench Write | QPS | TPS |
|---|---|---|---|---|---|
| 4C8G | 16 | 10,573,514 | 2,111,341 | 25,174.34 | 1,258.72 |
| 8C16G | 32 | 8,923,236 | 2,094,628 | 21,245.25 | 1,062.26 |
| 8C32G | 32 | 8,491,182 | 2,086,388 | 20,216.52 | 1,010.83 |
| 16C32G | 64 | 10,267,208 | 2,568,032 | 24,444.58 | 1,222.23 |
| 16C64G | 64 | 10,789,884 | 2,719,241 | 25,688.30 | 1,284.42 |
MongoDB
Môi trường test
| Tham số | Giá trị |
|---|---|
| Công cụ benchmark | Sysbench (OLTP Read/Write) |
| Số document | 1,000,000 |
| Số thao tác | 1,000,000 |
| Loại workload | Read/Write |
| Số thread (YCSB threads) | Cấu hình theo từng kích thước instance |
| Phiên bản MongoDB | MongoDB 6.0.6 |
Kết quả
| Flavor (vCPU/RAM) | Threads | Sysbench Read | Sysbench Write | QPS | TPS |
|---|---|---|---|---|---|
| 2C4G | 8 | 500,195 | 499,805 | 3,372.36 | 3,372.36 |
| 2C8G | 8 | 500,022 | 499,978 | 4,004.93 | 4,004.93 |
| 4C8G | 16 | 499,772 | 500,228 | 5,023.81 | 5,023.81 |
| 8C16G | 32 | 500,293 | 499,707 | 6,417.54 | 6,417.54 |
| 8C32G | 32 | 500,372 | 499,628 | 5,921.64 | 5,921.64 |
| 16C32G | 64 | 499,865 | 500,135 | 8,532.79 | 8,532.79 |
| 16C64G | 64 | 499,989 | 500,011 | 12,972.02 | 12,972.02 |
Redis
Môi trường test
| Tham số | Giá trị |
|---|---|
| Công cụ benchmark | Sysbench (OLTP Read/Write) |
| Số key | 1,000,000 |
| Loại workload | Read/Write |
| Phiên bản Redis | Redis 7.2.1 |
Kết quả
| Flavor (vCPU/RAM) | Sysbench Read | Sysbench Write | Total QPS | P99 latency | AVG latency |
|---|---|---|---|---|---|
| 2C4G | 68,600 | 29,405 | 98,005.25 | 28.93 | 3.10 |
| 2C8G | 68,346 | 29,296 | 97,641.61 | 30.85 | 3.92 |
| 4C8G | 67,948 | 29,126 | 97,074.26 | 35.33 | 6.77 |
| 8C16G | 68,655 | 29,428 | 98,083.03 | 28.03 | 3.41 |
| 8C32G | 67,811 | 29,067 | 96,878.29 | 35.84 | 5.77 |
| 16C32G | 67,964 | 29,132 | 97,096.07 | 33.54 | 4.89 |
| 16C64G | 68,329 | 29,289 | 97,617.73 | 31.74 | 4.42 |
Đọc các con số này thế nào
Thêm CPU và bộ nhớ nhìn chung làm tăng thông lượng, nhưng mỗi engine mở rộng theo cách khác nhau và mức tăng chững lại ở các cấu hình cao, tùy workload và giới hạn hệ thống.
Hãy dùng các bảng này để thu hẹp lựa chọn còn hai hoặc ba flavor ứng viên, rồi kiểm chứng bằng chính ứng dụng của bạn. Khi đã qua ngưỡng thiếu tài nguyên rõ ràng, hình dạng workload quan trọng hơn flavor.
Bước tiếp theo
- Thay đổi cấu hình tài nguyên database để đổi flavor trên database đang chạy
- Cấu hình auto scaling
- Thuật ngữ