Microsoft Azure là một trong những nhà cung cấp đám mây phổ biến nhất trên thế giới và rất phù hợp để lưu trữ cơ sở dữ liệu trên các ứng dụng tận dụng cơ sở hạ tầng của Microsoft. MySQL là cơ sở dữ liệu mã nguồn mở số một thường được lưu trữ thông qua các phiên bản Azure. Mặc dù Microsoft cung cấp sản phẩm Cơ sở dữ liệu Azure của riêng họ, nhưng vẫn có các lựa chọn thay thế khác có thể giúp bạn cải thiện hiệu suất MySQL của mình. Trong bài đăng trên blog này, chúng tôi so sánh Cơ sở dữ liệu Azure cho MySQL và ScaleGrid MySQL trên Azure để bạn có thể xem nhà cung cấp nào cung cấp hiệu suất thông lượng và độ trễ tốt nhất. Chúng tôi đo lường độ trễ bằng độ trễ phân vị thứ 95 mili giây.
Sơ lược - TLDR | ||||||
---|---|---|---|---|---|---|
|
Bạn mới bắt đầu? Xem bài đăng Cách tốt nhất để lưu trữ MySQL trên Azure Cloud để tìm hiểu thêm về cách tối ưu hóa việc triển khai cơ sở dữ liệu đám mây của bạn.
Điểm chuẩn Hiệu suất MySQL Azure
Trong báo cáo điểm chuẩn này, chúng tôi so sánh dịch vụ lưu trữ MySQL trên Azure tại ScaleGrid so với Cơ sở dữ liệu Azure cho MySQL trong ba trường hợp khối lượng công việc sau:
- Khối lượng công việc đọc chuyên sâu:80% đọc và 20% viết
- Khối lượng công việc cân bằng:50% đọc và 50% ghi
- Khối lượng công việc chuyên sâu về viết:20% đọc và 80% viết
Chúng tôi đo lường hiệu suất thông lượng và độ trễ của MySQL, đồng thời đo lường thông lượng về truy vấn mỗi giây (QPS) và độ trễ theo phân vị thứ 95 (mili giây). Kiểm tra phần Cấu hình điểm chuẩn của chúng tôi bên dưới báo cáo hiệu suất để xem các thử nghiệm này được định cấu hình như thế nào.
Hiệu suất đọc chuyên sâu của MySQL
Khối lượng công việc đọc nhiều trong MySQL là khối lượng công việc thường bị chi phối bởi các hoạt động đọc, chẳng hạn như SELECT. Vì vậy, khối lượng công việc cần đọc nhiều sẽ là khối lượng tìm kiếm cơ sở dữ liệu thường xuyên hơn so với việc ghi vào nó. Percona có một bài đăng tuyệt vời về khối lượng công việc cần đọc nhiều so với viết nhiều để bạn có thể tìm hiểu thêm.
Chúng ta hãy xem xét hiệu suất thông lượng và độ trễ của ScaleGrid MySQL so với Cơ sở dữ liệu Azure cho MySQL:
Thông lượng
Chủ đề | ScaleGrid | Azure | Cải tiến ScaleGrid |
---|---|---|---|
25 | 5.299 | 1.689 | 214% |
50 | 6.092 | 2.302 | 165% |
100 | 8,429 | 2,877 | 193% |
150 | 9.011 | 2.870 | 214% |
175 | 7.025 | 2.805 | 151% |
Như chúng ta có thể thấy từ biểu đồ và bảng hiệu suất ở trên, ScaleGrid MySQL đạt được thông lượng cao hơn gấp 3 lần so với Cơ sở dữ liệu Azure cho khối lượng công việc cần đọc nhiều. Trong khi Cơ sở dữ liệu Azure cho thông lượng MySQL dưới 3.000 truy vấn mỗi giây trong tất cả các kịch bản luồng, thì ScaleGrid có hơn 5.000-9.000 truy vấn mỗi giây trên các luồng. |
Độ trễ
Chủ đề | ScaleGrid | Azure | Cải tiến ScaleGrid |
---|---|---|---|
25 | 258 | 451 | - 43% |
50 | 101 | 670 | - 85% |
100 | 148 | 978 | - 85% |
150 | 309 | 1562 | - 80% |
175 | 1.089 | 1.678 | - 35% |
Trong khi độ trễ của Cơ sở dữ liệu Azure cho MySQL tăng nhanh khi số lượng luồng tăng lên, ScaleGrid MySQL đều đặn đạt được độ trễ thấp trên tất cả các số luồng . Trung bình, ScaleGrid cho MySQL có độ trễ thấp hơn 66% so với Cơ sở dữ liệu Azure cho MySQL cho các tình huống khối lượng công việc đọc nhiều. |
Giảm độ trễ #MySQL của bạn xuống 66% trên Azure, với hiệu suất thông lượng cao hơn tới 3 lần Nhấp để Tweet
Hiệu suất khối lượng công việc cân bằng của MySQL
Khối lượng công việc cân bằng tận dụng số lượng thao tác đọc và thao tác ghi gần bằng nhau.
Thông lượng
Chủ đề | ScaleGrid | Azure | Cải tiến ScaleGrid |
---|---|---|---|
25 | 3.806 | 1.748 | 118% |
50 | 5,834 | 2.437 | 139% |
100 | 6.365 | 2,712 | 135% |
150 | 5.724 | 2.775 | 106% |
175 | 6,206 | 1,767 | 251% |
Trung bình, ScaleGrid đã cải thiện thông lượng MySQL 150% so với Cơ sở dữ liệu Azure cho MySQL để có khối lượng công việc cân bằng và tốt hơn gấp 2 lần trên tất cả số lượng chủ đề. Cơ sở dữ liệu Azure đạt tối đa khoảng 2.775 truy vấn mỗi giây với 150 luồng, trong khi ScaleGrid đạt 5.724 truy vấn mỗi giây cho cùng một số luồng. |
Độ trễ
Chủ đề | ScaleGrid | Azure | Cải tiến ScaleGrid |
---|---|---|---|
25 | 76 | 390 | - 81% |
50 | 103 | 612 | - 83% |
100 | 240 | 943 | - 75% |
150 | 560 | 1.590 | - 65% |
175 | 560 | 2.199 | - 75% |
Chúng tôi thấy một cải tiến đáng kể khác về hiệu suất độ trễ đối với khối lượng công việc cân bằng, trong đó triển khai ScaleGrid MySQL có thể thực hiện ở mức thấp hơn hơn một phần ba độ trễ so với Cơ sở dữ liệu Azure cho MySQL. |
MySQL Write-Intensive Performance
Trong khi các thao tác đọc đang tìm kiếm từ cơ sở dữ liệu, các thao tác ghi là những thao tác lưu vào hoặc sửa đổi cơ sở dữ liệu, chẳng hạn như các truy vấn CHÈN, CẬP NHẬT hoặc XÓA. Khối lượng công việc cần ghi thường đắt hơn khối lượng công việc cần đọc vì các hoạt động tiêu tốn nhiều tài nguyên hơn. Hãy so sánh thông lượng của ScaleGrid với Azure Database và hiệu suất độ trễ trên các khối lượng công việc đòi hỏi nhiều khả năng ghi của MySQL.
Thông lượng
Chủ đề | ScaleGrid | Azure | Cải tiến ScaleGrid |
---|---|---|---|
25 | 3,327 | 826 | 303% |
50 | 5.003 | 1.154 | 334% |
100 | 5.180 | 1.476 | 251% |
150 | 4.310 | 1.651 | 161% |
175 | 4.071 | 1.643 | 148% |
Trong kịch bản chuyên sâu về khả năng viết của chúng tôi, chúng tôi có thể thấy sự cải thiện hiệu suất lớn nhất khi ScaleGrid đạt được lên đến 4x thông lượng cao hơn so với Cơ sở dữ liệu Azure . Điều này đặc biệt rõ ràng trong các kịch bản luồng thấp của chúng tôi, nhưng ngay cả ở 175 luồng, ScaleGrid vẫn hoạt động tốt hơn 2,5 lần so với Cơ sở dữ liệu Azure. |
Độ trễ
Chủ đề | ScaleGrid | Azure | Cải tiến ScaleGrid |
---|---|---|---|
25 | 76 | 277 | - 73% |
50 | 101 | 383 | - 74% |
100 | 298 | 996 | - 70% |
150 | 760 | 1.740 | - 56% |
175 | 1.089 | 2,009 | - 46% |
ScaleGrid lại vượt trội so với Cơ sở dữ liệu Azure với trung bình độ trễ thấp hơn 64% trên tất cả số luồng dành cho khối lượng công việc đòi hỏi nhiều viết. |
Như chúng ta có thể thấy từ các báo cáo trên, ScaleGrid giúp bạn tăng đáng kể thông lượng và giảm độ trễ của bạn khi triển khai Cơ sở dữ liệu Azure cho MySQL trên các khối lượng công việc cân bằng, đọc nhiều, ghi nhiều. các tình huống. Để tìm hiểu thêm về cách hai nhà cung cấp này so sánh giữa các tính năng, hãy xem trang ScaleGrid so với Azure Database MySQL.
Cấu hình điểm chuẩn
Hãy xem các cấu hình chúng tôi đã sử dụng trong điểm chuẩn hiệu suất:
So sánh cấu hình
Chúng tôi thiết kế cấu hình bằng cách sử dụng các gói có thể so sánh được giữa ScaleGrid và Azure Database. Chỉ có những khác biệt nhỏ và chi phí là như nhau đối với hai nhà cung cấp:
ScaleGrid MySQL trên Azure | Cơ sở dữ liệu Azure dành cho MySQL | |
---|---|---|
Loại Phiên bản | Dedicated Large:Standard_Ds2_v2 2 lõi | Mục đích chung:2 lõi |
RAM | 7 GB | 10GB (Bộ nhớ 5GB cho mỗi vCore) |
SSD | 128GB, Đĩa SSD cao cấp, 500 IOPS | 167GB, tối đa 500 IOPS |
Loại Triển khai | Số lượng 2 + 1 với sao chép bán đồng bộ | + 1 Đọc Bản sao Sao chép không đồng bộ |
Vùng | Đông Hoa Kỳ | Đông Hoa Kỳ |
Hỗ trợ | Đã bao gồm | Gói tiêu chuẩn ($ 100) |
Giá ước tính hàng tháng | $ 400 | $ 400 |
Cấu hình Sysbench
Cấu hình | Chi tiết |
---|---|
Công cụ | Sysbench phiên bản 1.0.20 |
Máy chủ | Standard_Ds2_v2 2 lõi (2 vcpus, 7GB memory) ở khu vực Đông Hoa Kỳ |
# Bảng | 100 |
# Hàng trên mỗi bảng | 2.000.000 |
Phân phối số ngẫu nhiên | Đặc biệt |
Cấu hình máy chủ MySQL
Cấu hình | Azure Scalegrid (Chuyên dụng) | Azure DB cho MySQL |
---|---|---|
Phiên bản SQL | 5.7.25 | 5.7.27 |
innodb_buffer_pool_size | 4G | 7,5G |
innodb_log_file_size | 1G | 268 triệu |
innodb_io_capacity | 500 | 500 |
innodb_io_capacity_max | 1000 | 1000 |
Lưu ý rằng tại ScaleGrid, bạn có các tùy chọn nâng cao để tùy chỉnh cấu hình MySQL của mình. Điều này cho phép bạn tùy chỉnh việc triển khai theo nhu cầu ứng dụng của mình và tối ưu hóa hiệu suất. Rất tiếc, Cơ sở dữ liệu Azure không cho phép tùy chỉnh một số tham số, vì vậy bạn gặp khó khăn với các cấu hình mặc định có sẵn thông qua nền tảng của họ.
Ví dụ:chúng tôi có thể tùy chỉnh kích thước tệp nhật ký InnoDB thành 1GB trong khi đối với Cơ sở dữ liệu Azure, điều này không thể sửa đổi và có giá trị mặc định là 268M. Tìm hiểu thêm về các hạn chế trong Cơ sở dữ liệu Azure dành cho MySQL.
Có nhiều lợi ích khác khi sử dụng Scalegrid MySQL cho Azure, hãy xem phần so sánh đầy đủ trên trang ScaleGrid và Azure Database - MySQL Hosting của chúng tôi.