Hiệu ứng thời gian phục hồi của các nhóm sẵn có


7

Chúng tôi đã thực hiện các loại Thử nghiệm cơ bản khác nhau và Luôn luôn vượt qua trong nhiều thử nghiệm. Cuối cùng chúng tôi đã thực hiện một bài kiểm tra viết nặng cho Luôn luôn và nó đã cho kết quả đáng ngạc nhiên.

Các chi tiết thử nghiệm thực tế có ở đây, mục tiêu là để xem liệu nhóm sẵn có của Luôn luôn có thể chịu được tải ghi cao hay không.

  1. Tôi có hai máy ảo, mỗi máy chạy trên 8 lõi và 17GB RAM được phân bổ cho SQL Server.

  2. Chúng tôi đã viết một kịch bản để tạo ra I / O viết hợp lý (trong 20 chủ đề).

  3. Mỗi luồng về cơ bản sẽ chèn 24 MB dữ liệu vào một bảng và xóa trong một vòng lặp vô tận.

Trong vòng 15 phút sau khi chạy thử, ước tính thời gian phục hồi khi chuyển đổi dự phòng tự động đạt 12 phút, khá tệ. Chúng tôi đã thử chuyển đổi dự phòng để xác nhận nếu nó thực sự mất 12 phút, mất khoảng 5 phút vẫn còn quá cao. Ngoài ra, nếu chúng tôi tiếp tục thử nghiệm trong ba giờ, ETA phục hồi gần 3 giờ và phải mất hàng giờ để khôi phục khi chuyển đổi dự phòng (rõ ràng điều này không nên xảy ra nếu đó là chuyển đổi dự phòng cụm, vì tất cả các giao dịch đều được giao dịch cam kết).

Rất nhiều điều ..

Rõ ràng là synchronousbản sao thứ cấp không thể theo kịp với tải chính đang tạo (mặc dù cả hai máy có cùng cấu hình). Và tác dụng phụ của việc này là nhật ký chính sẽ tiếp tục phát triển (ngay cả khi chúng tôi thực hiện sao lưu nhật ký, nó không thể cắt bớt nhật ký).

Chúng tôi biết rằng thứ cấp sử dụng một luồng trên mỗi 4 lõi CPU để thực hiện lại, điều này có vẻ như là một giới hạn rõ ràng. Nếu chính đang chạy 100 luồng để tạo tải, thì thứ cấp không thể sử dụng nhiều luồng đó.

Ngoài ra, chính thực hiện tất cả các giao dịch trong bộ nhớ và để tệp dữ liệu thực tế ghi vào các điểm kiểm tra. Tuy nhiên, có vẻ như thứ cấp phải đọc tất cả các giao dịch từ ổ đĩa nhật ký vật lý và làm lại. Nhóm nhật ký trên thứ cấp được cho là làm cho quá trình này nhanh hơn? Nhưng nó không làm tốt công việc trong kịch bản này.

Cuối cùng là câu hỏi cho các chuyên gia của Luôn luôn:

  1. Có ai biết làm thế nào redochính xác quá trình xảy ra?
    • nó được lưu trữ?
    • là vùng đệm liên quan đến tất cả?
  2. Có sử dụng nhóm nhật ký thứ cấp để lưu trữ các mục nhật ký để làm lại không?

  3. Kích thước của hồ bơi đăng nhập là gì? Nó có thể phát triển đến bộ nhớ tối đa có sẵn?

  4. Khi làm lại xảy ra, luồng làm lại đọc các trang vào vùng đệm và duy trì chúng như thể đó là một giao dịch bình thường?

  5. Nếu thứ cấp không thể theo kịp thì làm sao các bài báo của Luôn luôn nói rằng thời gian phục hồi là vài giây?

Điều này làm cho phần khả dụng cao của Nhóm sẵn sàng bị nghi ngờ, vì những thời gian phục hồi này là không bền vững.


[Chỉnh sửa bởi người hỏi] Làm rõ, vì mọi người dường như nghĩ rằng điều này đã được trả lời, các giao dịch chính thực sự được thừa nhận (tức là nhật ký được làm cứng), vì trạng thái của thứ cấp luôn được "đồng bộ hóa". Vì vậy, nó không phải là một vấn đề với việc làm cứng nhật ký. Vì vậy, đó là quá trình làm lại đang diễn ra mãi mãi khi chuyển đổi dự phòng. Điều này có nghĩa là Luôn luôn sẽ mất nhiều thời gian hơn để khôi phục hơn là không có nó cho bất kỳ tải nào tạo ra log> làm lại dung lượng luồng.


Bạn có số liệu thống kê chờ từ số liệu thống kê IO phụ và kích thước phụ (vật lý hệ điều hành, SQL) giữa chính và bản sao không?
Remus Rusanu

Tôi làm, không có nhiều HADR_COMMIT_SYNC chờ đợi (dù sao thì hàng đợi làm lại chỉ được xây dựng sau khi nhật ký được làm cứng), và tôi đã đề cập rằng các giao dịch được thực hiện đúng lúc, vì vậy không có câu hỏi nào về việc cứng hóa nhật ký không xảy ra. .
WrinkleFree

Bạn có sử dụng mô hình phục hồi đầy đủ? cơ sở dữ liệu của bạn lớn như thế nào? Bạn có thường xuyên sao lưu nhật ký giao dịch không?
Aen Sidhe

tôi đã tham dự phiên thảo luận về người dùng sớm của máy chủ sql 2016 tại PASS Summit năm ngoái, nơi họ chỉ ra rằng có một mức ẩn 45 MB (vâng, megaBYTES) mỗi giây khi truyền giữa các bản sao do một phần của cơ sở mã hóa mã hóa truyền nhật ký của bạn đến các bản sao khác. họ nói rằng năm 2016 đã loại bỏ hành vi này. có lẽ năm 2016 sẽ có thể theo kịp khối lượng công việc thử nghiệm của bạn.
swasheck

Câu trả lời:


7

Rõ ràng là bản sao thứ cấp đồng bộ không thể theo kịp với tải chính được tạo ra (mặc dù cả hai máy đều có cùng cấu hình). Và tác dụng phụ của việc này là nhật ký chính sẽ tiếp tục phát triển (ngay cả khi chúng tôi thực hiện sao lưu nhật ký, nó không thể cắt bớt nhật ký)

Trong phản chiếu đồng bộ / luôn luôn, thứ cấp phải thừa nhận rằng nó cứng (ghi vào đĩa) nhật ký trước khi cam kết chính được phép tiếp tục. Bản chính sau đó được tự do cắt / sử dụng lại nhật ký của chính nó khi cần. Nếu bạn không thể cắt chính thì có nghĩa là thứ cấp không được đồng bộ hóa. Điều này sẽ chỉ ra một vấn đề với khả năng gửi nhật ký đến phụ và ghi nó vào đĩa. Hai nút thắt rõ ràng sẽ là tốc độ mạng và lưu trữ tệp nhật ký phụ. Cả hai đều dễ dàng đo lường và chẩn đoán, vì chúng là các số liệu cấp độ hệ điều hành USE (mức độ sử dụng, độ bão hòa, lỗi) thẳng tiến .

Lưu ý rằng tôi không bao giờ đề cập đến phục hồi (làm lại thứ cấp). Nếu vấn đề thực sự là thứ cấp không thể đồng bộ hóa thì làm lại không đóng vai trò thực sự nào ở đây.


Vâng, tôi cũng có suy nghĩ tương tự, tuy nhiên vì một số lý do, nó không cho phép tôi cắt bớt nhật ký vượt quá lsn đã làm lại lần cuối, thay vì lsn cứng cuối cùng (tôi đã xác minh điều này, khi hàng đợi làm lại lớn, nhật ký không cắt ngắn (làm như vậy với tốc độ bằng cách làm lại một cách đại khái)), tôi đã không đưa ra một lý thuyết phù hợp (có thể vì khi chúng tôi cắt ngắn nhật ký, kích thước nhật ký thay đổi, do đó không thể có các bản ghi có kích thước khác nhau trên chính và phụ)
WrinkleFree

là trạng thái 'đồng bộ hóa' hay 'đồng bộ hóa'?
Remus Rusanu

Nó luôn được đồng bộ hóa ..
WrinkleFree

@Rohan: Không chỉnh sửa câu trả lời để làm rõ. Bạn có thể chỉnh sửa câu hỏi của bạn và thêm các công cụ liên quan bất cứ lúc nào.
ypercubeᵀᴹ

@ypercube: xin lỗi về điều đó, cảm ơn vì đã chỉnh sửa :)
WrinkleFree
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.