AWS là nhà cung cấp đám mây số 1 để lưu trữ cơ sở dữ liệu mã nguồn mở và đám mây di động để triển khai MySQL. Khi các tổ chức tiếp tục di chuyển sang đám mây, điều quan trọng là phải đối mặt với các vấn đề về hiệu suất, chẳng hạn như độ trễ cao, thông lượng thấp và độ trễ sao chép với khoảng cách cao hơn giữa người dùng của bạn và cơ sở hạ tầng đám mây. Trong khi nhiều người dùng AWS mặc định sử dụng giải pháp cơ sở dữ liệu được quản lý của họ, Amazon RDS, có sẵn các giải pháp thay thế có thể cải thiện hiệu suất MySQL của bạn trên AWS thông qua các tùy chọn tùy chỉnh nâng cao và hỗ trợ loại phiên bản EC2 không giới hạn. ScaleGrid cung cấp một giải pháp thay thế hấp dẫn để lưu trữ MySQL trên AWS mang lại hiệu suất tốt hơn, nhiều quyền kiểm soát hơn và không có nhà cung cấp đám mây khóa và cùng mức giá với Amazon RDS. Trong bài đăng này, chúng tôi so sánh hiệu suất của MySQL Amazon RDS với MySQL Hosting tại ScaleGrid trên các phiên bản Hiệu suất cao AWS.
TLDR
Việc triển khai MySQL trên AWS Hiệu suất cao của ScaleGrid có thể cung cấp thông lượng gấp 2 lần-3 lần với độ trễ bằng một nửa của Amazon RDS dành cho MySQL với lợi thế bổ sung của chúng là có 2 bản sao đọc so với 1 trong RDS.
MySQL trong Kiểm tra Hiệu suất AWS
ScaleGrid | Amazon RDS | |
Loại phiên bản | AWS High Performance XLarge (xem chi tiết hệ thống bên dưới) | Phiên bản DB r4.xlarge (Đa AZ) |
Loại Triển khai | Bộ 3 Node Master-Slave với Sao chép Bán đồng bộ | Triển khai nhiều AZ với 1 bản sao đọc |
Đĩa SSD | SSD cục bộ &Mục đích chung - 2TB | Mục đích chung - 2TB |
Chi phí Hàng tháng (USD) | $ 1,798 | $ 1,789 |
Amazon RDS Chi phí | Giá | Số lượng | Tổng số | Ghi chú |
Đa AZ | ||||
Phiên bản DB (hr) | $ 0,48 | 730 | $ 350,40 | db.r4.xlarge |
Phiên bản DB (hr) | $ 0,48 | 730 | $ 350,40 | db.r4.xlarge |
Bộ nhớ (GB) | $ 0,115 | 2000 | $ 230.00 | Mục đích chung - 2TB (Đơn-AZ) |
Đọc bản sao | ||||
Phiên bản DB (hr) | $ 0,48 | 730 | $ 350,40 | db.r4.xlarge (Đơn-AZ) |
Bộ nhớ (GB) | $ 0,115 | 2000 | $ 230.00 | Mục đích chung - 2TB (Đơn-AZ) |
Các chi phí khác | ||||
Bộ nhớ Dự phòng (GB) | $ 0,095 | 1000 | $ 95 | Giải phóng tới 100% bộ nhớ DB |
Truyền dữ liệu (ra internet) | $ 0,09 | 0 | $ 0,00 | Miễn phí lên đến 1GB / tháng |
Truyền dữ liệu (ra các vùng) | $ 0,01 | 2000 | $ 20 | Miền Đông Hoa Kỳ (N. Virginia) |
Hỗ trợ | $ 162,62 | 1 | $ 162,62 | 10% chi phí hàng tháng |
Tổng số | $ 1.788,82 |
Như bạn có thể thấy từ bảng trên, giá MySQL RDS nằm trong khoảng $ 10 so với giải pháp lưu trữ MySQL được quản lý hoàn toàn và bao gồm tất cả của ScaleGrid.
Bộ bản sao Hiệu suất cao của ScaleGrid là gì?
Bộ bản sao ScaleGrid MySQL trên AWS High Performance sử dụng kết hợp giữa SSD cục bộ và đĩa EBS để đạt được cả hiệu suất cao và độ tin cậy cao. Một cấu hình điển hình được triển khai bằng cách sử dụng tập hợp bản sao 3 nút:
- Master và Slave-1 sử dụng đĩa SSD cục bộ.
- Slave-2 sử dụng đĩa EBS (có thể là Đĩa Mục đích Chung hoặc Đĩa IOPS được Cấp phép).
Điều này có nghĩa là gì? Vì Master và Slave-1 đang chạy trên SSD cục bộ, bạn sẽ có được hiệu suất đĩa tốt nhất có thể từ các máy AWS của mình. Không còn EBS dựa trên mạng, chỉ cần SSD cục bộ cực nhanh. Đọc và ghi vào chính của bạn, và thậm chí đọc từ Slave-1 sẽ hoạt động ở tốc độ SSD. Slave-2 sử dụng đĩa dữ liệu EBS và bạn có thể định cấu hình số lượng IOPS cần thiết cho cụm của mình. Cấu hình này cung cấp sự an toàn hoàn toàn cho dữ liệu của bạn, ngay cả trong trường hợp bạn làm mất đĩa SSD cục bộ.
Bộ bản sao MySQL AWS High Performance XLarge của ScaleGrid sử dụng các bản sao i3.xlarge (30,5 GB RAM) với SSD cục bộ cho Master và Slave-1 và i3,2xlarge (61 GB RAM) ví dụ cho Slave-2.
Cấu hình MySQL
Cấu hình MySQL tương tự được sử dụng trên cả triển khai ScaleGrid và RDS:
Cấu hình | Giá trị |
phiên bản | Phiên bản cộng đồng 5.7.25 |
innodb_buffer_pool_size | 25G |
innodb_log_file_size | 1G |
innodb_flush_log_at_trx_commit | 1 |
sync_binlog | 1 |
innodb_io_capacity | 3000 |
innodb_io_capacity_max | 6000 |
slave_parallel_workers | 30 |
slave_parallel_type | LOGICAL_CLOCK |
Cấu hình Điểm chuẩn Hiệu suất MySQL
Cấu hình | Chi tiết |
Công cụ | Sysbench phiên bản 1.0.17 |
Máy chủ | 1 r4.xlarge nằm trong cùng trung tâm dữ liệu AWS với Master MySQL |
# Bảng | 100 |
# Hàng trên mỗi bảng | 5.000.000 |
Tập lệnh tạo khối lượng công việc | oltp_read_write.lua |
Kịch bản và kết quả kiểm tra hiệu suất MySQL
Để đảm bảo chúng tôi cung cấp kết quả cung cấp thông tin cho tất cả các loại khối lượng công việc AWS của MySQL, chúng tôi đã chia nhỏ các thử nghiệm của mình thành ba trường hợp sau để bạn có thể đánh giá dựa trên cường độ khối lượng công việc đọc / ghi của mình:
- Khối lượng Công việc Chuyên sâu Đọc: 80% Đọc và 20% Viết
- Khối lượng công việc cân bằng: 50% Đọc và 50% Viết
- Khối lượng Công việc Chuyên sâu Viết: 20% Đọc và 80% Viết
Mỗi kịch bản được chạy với số lượng chủ đề máy khách sysbench khác nhau, từ 50 đến 400 và mỗi bài kiểm tra được chạy trong thời gian 10 phút. Chúng tôi đo lường thông lượng theo số Truy vấn trên giây (QPS) và độ trễ Phần trăm thứ 95 và đảm bảo rằng độ trễ sao chép tối đa trên các nô lệ không vượt qua 30 giây. Đối với một số thử nghiệm về triển khai ScaleGrid, cấu hình MySQL binlog_group_commit_sync_delay được điều chỉnh để độ trễ sao chép nô lệ không vượt quá 30 giây. Kỹ thuật này được gọi là 'làm chậm sư phụ để tăng tốc độ cho nô lệ' và được giải thích trong blog của J-F Gagne.
Cách cải thiện hiệu suất #MySQL AWS gấp 2 lần trên Amazon RDS với cùng chi phí Nhấp để đăngKịch bản-1:Khối lượng công việc đọc chuyên sâu với 80% số lần đọc và 20% số bài viết
Như chúng ta có thể thấy từ các bài kiểm tra khối lượng công việc đọc chuyên sâu, các phiên bản MySQL hiệu suất cao của ScaleGrid trên AWS có thể xử lý liên tục khoảng 27.800 QPS ở bất kỳ đâu từ 50 trở lên 400 chủ đề. Đây là mức tăng gần như 200% so với hiệu suất MySQL RDS, chỉ đạt trung bình 9.411 QPS trên cùng một phạm vi chuỗi.
ScaleGrid cũng duy trì độ trễ trung bình thấp hơn 53% trong toàn bộ các bài kiểm tra hiệu suất MySQL AWS. Cả độ trễ của Amazon RDS và ScaleGrid đều tăng đều đặn khi số lượng luồng tăng lên, trong đó ScaleGrid đạt tối đa 383ms cho 400 luồng trong khi Amazon RDS ở mức 831ms ở cùng mức độ.
Kịch bản-2:Khối lượng công việc cân bằng với 50% Đọc và 50% Ghi
Trong các bài kiểm tra hiệu suất khối lượng công việc cân bằng của chúng tôi, việc triển khai Hiệu suất cao MySQL của ScaleGrid trên AWS lại vượt trội với mức trung bình 20.605 QPS trên các chuỗi từ 50 đến 400. Amazon RDS chỉ đạt trung bình 8.296 cho cùng một số luồng, dẫn đến cải thiện 148% với ScaleGrid.
Độ trễ của cả ScaleGrid và Amazon RDS đều giảm đáng kể trong các bài kiểm tra khối lượng công việc cân bằng so với các bài kiểm tra đọc nhiều ở trên. Amazon RDS có độ trễ trung bình 258ms trong các bài kiểm tra khối lượng công việc cân bằng, trong đó ScaleGrid chỉ đạt trung bình 125ms, giảm hơn 52% độ trễ so với MySQL trên Amazon RDS.
Kịch bản-3:Viết-Khối lượng công việc chuyên sâu với 20% số lần đọc và 80% số bài viết
Trong kịch bản khối lượng công việc MySQL AWS chuyên sâu về ghi cuối cùng của chúng tôi, ScaleGrid đã đạt được hiệu suất thông lượng cao hơn đáng kể với mức trung bình là 17.007 QPS trong phạm vi từ 50 đến 400 luồng. Đây là mức cải thiện 123% so với Amazon RDS, người chỉ đạt được 7.638 QPS so với cùng một số luồng.
Các bài kiểm tra độ trễ phân vị thứ 95 cũng tạo ra độ trễ thấp hơn đáng kể cho ScaleGrid ở mức trung bình là 114ms trên 50 đến 400 luồng. Amazon RDS đã đạt được trung bình 247ms trong các bài kiểm tra độ trễ của họ, dẫn đến giảm 54% độ trễ trung bình khi triển khai ScaleGrid’s High Performance MySQL trên các dịch vụ AWS qua Amazon RDS.
Phân tích
Như chúng tôi đã quan sát từ kết quả thử nghiệm, khối lượng công việc cần đọc nhiều dẫn đến cả thông lượng và độ trễ cao hơn so với khối lượng công việc cân bằng và khối lượng công việc nhiều ghi, bất kể như thế nào MySQL đã được triển khai trên AWS:
MySQL trên AWS Kiểm tra Hiệu suất Thông lượng Trung bình | ScaleGrid | Amazon RDS | Cải tiến ScaleGrid |
Thông lượng đọc chuyên sâu | 27.795 | 9,411 | 195,4% |
Cân bằng thông lượng công việc | 20.605 | 8.296 | 148,4% |
Lưu lượng ghi chuyên sâu | 17.007 | 7.638 | 122,7% |
MySQL trên AWS Kiểm tra Hiệu suất Độ trễ Trung bình | ScaleGrid | Amazon RDS | Cải tiến ScaleGrid |
Độ trễ đọc chuyên sâu | 206ms | 439ms | - 53,0% |
Độ trễ khối lượng công việc cân bằng | 125ms | 258ms | - 51,6% |
Độ trễ Ghi-Chuyên sâu | 114ms | 247ms | - 53,8% |
Giải thích kết quả
- Chúng tôi thấy rằng ScaleGrid MySQL khi triển khai AWS cung cấp thông lượng tốt hơn gần gấp 3 lần cho khối lượng công việc đọc nhiều so với triển khai RDS.
- Khi tải ghi tăng lên, mặc dù thông lượng tuyệt đối giảm, ScaleGrid vẫn cung cấp hiệu suất thông lượng tốt hơn gần 2,5 lần.
- Đối với khối lượng công việc đòi hỏi nhiều viết, chúng tôi nhận thấy rằng độ trễ sao chép bắt đầu xuất hiện đối với nô lệ EBS khi triển khai ScaleGrid. Vì mục tiêu của chúng tôi là duy trì độ trễ sao chép nô lệ trong vòng 30 giây cho quá trình chạy của chúng tôi, chúng tôi đã giới thiệu binlog_group_commit_sync_delay để đảm bảo rằng nô lệ có thể thực hiện song song tốt hơn. Điều này đã kiểm soát độ trễ và dẫn đến thông lượng tuyệt đối thấp hơn khi triển khai ScaleGrid, nhưng chúng tôi vẫn có thể thấy thông lượng tốt hơn 2,2 lần so với triển khai RDS.
- Đối với tất cả các tình huống khối lượng công việc cân bằng, đọc nhiều, ghi nhiều và cân bằng, ScaleGrid cung cấp đặc điểm độ trễ thấp hơn 0,5 lần so với RDS.
Việc triển khai ScaleGrid 'Hiệu suất cao' có thể cung cấp thông lượng gấp 2 lần-3 lần với độ trễ bằng một nửa RDS với một lợi thế bổ sung là có 2 bản sao đọc so với 1 trong RDS. Để tìm hiểu thêm về lợi thế lưu trữ MySQL của ScaleGrid so với Amazon RDS cho MySQL, hãy xem trang So sánh các nhà cung cấp MySQL của chúng tôi hoặc bắt đầu dùng thử miễn phí 30 ngày để khám phá nền tảng DBaaS được quản lý đầy đủ.