Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách cải thiện hiệu suất AWS của MySQL gấp 2 lần trên Amazon RDS với cùng chi phí

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:

  1. Khối lượng Công việc Chuyên sâu Đọc: 80% Đọc và 20% Viết
  2. Khối lượng công việc cân bằng: 50% Đọc và 50% Viết
  3. 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 để đăng

Kị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 đủ.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ FROM_DAYS () - MySQL

  2. Cách tính tiền ký quỹ trong MySQL

  3. 1114 (HY000):Bảng đã đầy

  4. Giả lập mệnh đề MySQL LIMIT trong Microsoft SQL Server 2000

  5. MySQL số ​​lượng các mục trong mệnh đề