Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Cài đặt cấu hình chính để tối ưu hóa sao chép MySQL cho lưu lượng truy cập cao


Cài đặt cấu hình chính để tối ưu hóa sao chép MySQL cho lưu lượng truy cập cao


Cài đặt cấu hình chính Để tối ưu hóa sao chép MySQL cho môi trường lưu lượng cao liên quan đến việc điều chỉnh cẩn thận các tham số sao chép và máy chủ khác nhau để cân bằng hiệu suất, độ tin cậy và tính nhất quán của dữ liệu.

Sử dụng cấu hình hoạt động/thụ động:
Trong các kịch bản giao thông cao, khuyến nghị sử dụng kiến ​​trúc sao chép hoạt động/thụ động, trong đó một máy chủ chính của MYSQL (MASTER) xử lý tất cả các hoạt động ghi và nhiều bản sao thụ động (nô lệ) xử lý các hoạt động đọc. Điều này phân chia khối lượng công việc một cách hiệu quả, cho phép các bản sao phục vụ lưu lượng truy cập chỉ đọc trong khi Master xử lý viết. Thiết lập này tránh các vấn đề phức tạp và xung đột của các cấu hình hoạt động/hoạt động. Tuy nhiên, sao chép không đồng bộ, phổ biến trong thiết lập này, có thể đưa ra một số độ trễ giữa chính và bản sao, do đó logic ứng dụng nên tính đến các yêu cầu nhất quán đọc-write.

Chế độ sao chép:
MYSQL sao chép hỗ trợ các chế độ sao chép không đồng bộ và bán đồng bộ. Sao chép không đồng bộ là mặc định và cung cấp hiệu suất cao nhưng với độ trễ sao chép tiềm năng. Sao chép bán đồng bộ hóa cải thiện tính nhất quán của dữ liệu bằng cách làm cho Master đợi cho đến khi ít nhất một bản sao thừa nhận đã nhận được một giao dịch trước khi tiến hành. Điều này làm giảm nguy cơ mất dữ liệu trong các tình huống chuyển đổi dự phòng nhưng thêm độ trễ. Đối với lưu lượng truy cập cao, các cài đặt thời gian chờ của chế độ bán đồng bộ sẽ được điều chỉnh (10 giây mặc định) để đảm bảo sự đánh đổi thích hợp giữa tính nhất quán và hiệu suất. Đôi khi, các chế độ hỗn hợp được sử dụng trong đó một bản sao quan trọng sử dụng Semi-sync và các chế độ khác sử dụng Async để cân bằng tính khả dụng và hiệu suất.

Cấu hình ghi nhật ký nhị phân:
Bật đăng nhập nhị phân trên chủ bằng cách đặt `log-bin` và gán một` server-id` duy nhất. Chọn `BinLog_Format = Row` để ghi lại các thay đổi hàng cá nhân thay vì các câu lệnh cho độ chính xác và tính nhất quán, đặc biệt là trong khối lượng công việc phức tạp. Định cấu hình các chính sách duy trì nhật ký nhị phân một cách khôn ngoan để cân bằng khả năng phục hồi và nhu cầu lưu trữ. Ngoài ra, kích hoạt `gtid_mode = on` và` thực thi_gtid_consistency = on` cho các định danh giao dịch toàn cầu để đơn giản hóa quản lý sao chép và chuyển đổi dự phòng, tăng cường tự động hóa.

Cấu trúc liên kết sao chép cho hiệu suất:
Để sao chép tỷ lệ trong các kịch bản giao thông cao, một cấu trúc liên kết sao chép phân cấp (còn được gọi là nhân rộng chuỗi hoặc rơle) được khuyến nghị. Master sao chép thành một máy chủ trung gian (tiếp sức nô lệ), từ đó sao chép thành các bản sao khác. Điều này làm giảm tải trên chủ bằng cách ủy thác mạng và lưu lượng truy cập sao chép cho các bản sao trung gian. Cấu trúc liên kết này làm giảm bớt các tắc nghẽn mạng và cải thiện thông lượng sao chép tổng thể. Tuy nhiên, việc cho phép `log_slave_updates` trên các máy chủ rơle là cần thiết, điều này có chi phí hiệu suất và yêu cầu giám sát cẩn thận để ngăn chặn độ trễ sao chép.

Sao chép song song trên nô lệ:
Cho phép sao chép song song trên các bản sao để cải thiện hiệu suất sao chép. MySQL 5.6+ hỗ trợ thực thi SQL SQL đa luồng. Các tùy chọn có thể định cấu hình như `SLAVE_PARALLEL_Workers` cho phép nhiều luồng SQL sao chép để áp dụng các giao dịch song song, giảm độ trễ sao chép cho khối lượng công việc với các giao dịch độc lập. Điều chỉnh cẩn thận là cần thiết để đặt số lượng chủ đề tối ưu dựa trên CPU và đặc điểm khối lượng công việc mà không gây ra sự tranh chấp.

Tối ưu hóa mạng và kết nối:
Tối ưu hóa cấu hình mạng cho lưu lượng sao chép bằng cách:
- Sử dụng giao diện mạng chuyên dụng để sao chép.
- Kích hoạt nén trên các luồng sao chép để giảm sử dụng băng thông.
- Định cấu hình đúng quy tắc tường lửa để cho phép lưu lượng truy cập sao chép một cách an toàn.
-Sử dụng mã hóa SSL (Bật tùy chọn `--SSL`) để truyền dữ liệu an toàn, mặc dù nó thêm một số chi phí CPU.
- Tập hợp kết nối có thể giảm chi phí từ các thiết lập kết nối thường xuyên.

Lưu trữ và tối ưu hóa I/O:
Sử dụng lưu trữ nhanh (SSD ưa thích) trên Master để ghi nhật ký nhị phân, vì việc ghi nhật ký nhị phân tác động trực tiếp đến sao chép. Trên các bản sao, hãy xem xét các thiết bị lưu trữ riêng biệt cho nhật ký rơle để tránh tranh chấp I/O. Tối ưu hóa cài đặt lịch trình I/O và tham số hệ thống tệp để ghi vì nhật ký sao chép liên quan đến việc ghi tuần tự với các fsync định kỳ. Độ trễ đĩa ảnh hưởng trực tiếp đến độ trễ sao chép và hiệu suất tổng thể.

Cài đặt thời gian chờ và thử lại:
Điều chỉnh các cài đặt thời gian chờ sao chép như `nô lệ_net_timeout` để đảm bảo rằng các kết nối sao chép không giảm sớm trong các mạng giao thông cao hoặc có độ trễ cao. Ngoài ra, giai điệu `master_retry_count` và các tham số thử lại liên quan để có khả năng phục hồi tốt hơn trong các lỗi mạng thoáng qua.

Giám sát và cảnh báo:
Thực hiện giám sát độ trễ sao chép, thông lượng mạng, I/O đĩa và sử dụng CPU. Các công cụ có thể cảnh báo về các ngưỡng trễ sao chép và các dị thường khác có thể chỉ ra sự suy giảm hiệu suất. Giám sát chủ động là rất quan trọng trong môi trường có lưu lượng truy cập cao để duy trì sức khỏe nhân rộng.

Chiến lược chuyển đổi dự phòng và sao lưu:
Các bản sao phải được sao lưu thường xuyên ngoài việc sử dụng sao chép cho tính khả dụng cao. Thủ tục kiểm tra thường xuyên. Sử dụng GTID để đơn giản hóa việc phục hồi chuyển đổi dự phòng bằng cách dễ dàng xác định giao dịch được thực hiện cuối cùng và đảm bảo các bản sao bắt kịp mà không mất dữ liệu. Trong các cấu trúc liên kết sao chép chuỗi, đảm bảo nô lệ chuyển tiếp và bản sao lá được đồng bộ hóa hoàn toàn trước khi chuyển đổi dự phòng.

Cài đặt bổ sung:
- Tắt ghi nhật ký và giám sát không cần thiết trên các bản sao để giảm chi phí.
- Sử dụng `Sync_binlog = 1` trên Master cho độ bền, với nhận thức, nó ảnh hưởng đến hiệu suất của đĩa.
- Điều chỉnh `max_allowed_packet` để xử lý các giao dịch lớn trong sao chép mà không có lỗi.

Tóm tắt các tham số cấu hình khóa:
- về chủ nhân:
- `Server-id` (duy nhất)
-`log-bin = mysql-bin`
- `BinLog_Format = Row`
- `gtid_mode = on`
- `thực thi_gtid_consistency = on`
- `Sync_binlog = 1` (cho độ bền)
- trên bản sao:
- `Server-id` (độc đáo khác với Master)
- `relay_log`
- `log_slave_updates` (nếu được sử dụng làm rơle trung gian)
- trứng
-`Slave-net-timeout` được điều chỉnh cho các điều kiện mạng
- Chế độ sao chép:
- Bật sao chép bán đồng bộ cho các bản sao quan trọng (`rpl_semi_sync_master_enables = on`,` rpl_semi_sync_slave_enables = on`)
- Mạng:
- SSL được bật để sao chép
- Bật nén nếu thông lượng bị hạn chế
- Kho:
- SSD cho nhật ký nhị phân và rơle
- Đĩa riêng cho nhật ký rơle nếu có thể
- Cấu trúc liên kết:
- Sử dụng sao chép chuỗi hoặc phân cấp để phân phối tải.

Việc thực hiện các cài đặt này, kết hợp với cơ sở hạ tầng có khả năng xử lý thông lượng mạng và đĩa cao, sẽ đảm bảo sao chép MySQL thực hiện tối ưu trong môi trường lưu lượng truy cập cao với quản lý độ trễ sao chép tốt hơn, dung sai lỗi và tính nhất quán của dữ liệu.