Cơ sở dữ liệu Azure SQL hiện có ba cấp dịch vụ để lựa chọn cho khối lượng công việc của bạn. Các hạng này bao gồm Cơ bản, Tiêu chuẩn và Cao cấp. Basic chỉ hỗ trợ một kích thước là 5 DTU. Phí bảo hiểm bắt đầu từ 125 DTU và lên đến 4.000 DTU. Cấp Premium là cấp cao nhất được xây dựng cho khối lượng công việc I / O cao hơn và cung cấp độ trễ thấp hơn cho mỗi I / O và số lượng IOPS trên mỗi DTU nhiều hơn so với cấp Tiêu chuẩn.
Trước tháng 8 năm 2017, bậc Tiêu chuẩn chỉ hỗ trợ kích thước DTU từ 15 đến 100 DTU. Hiện có sẵn trong bản xem trước là các mức hiệu suất mới và tiện ích bổ sung lưu trữ mang lại lợi ích tối ưu hóa giá cho khối lượng công việc sử dụng nhiều CPU. Với những thứ đó, lớp Tiêu chuẩn hiện hỗ trợ lên đến 3.000 DTU.
Tại thời điểm này, bạn có thể tự hỏi mình, chính xác, DTU là gì? DTU là một Đơn vị Giao dịch Cơ sở dữ liệu và là hỗn hợp của CPU, bộ nhớ, dữ liệu và I / O nhật ký giao dịch. (Andy Mallon, @AMtwo, gần đây đã giải quyết vấn đề này trong "DTU là cái quái gì?") Bạn có thể đạt đến giới hạn DTU của mình bằng cách sử dụng tối đa CPU, bộ nhớ hoặc I / O.
Trước đây, lớp Tiêu chuẩn chỉ cung cấp 4 mức:15, 30, 50 và 100 DTU, với giới hạn kích thước cơ sở dữ liệu là 250GB, với đĩa tiêu chuẩn. Nếu bạn có một cơ sở dữ liệu lớn hơn 250GB, tuy nhiên không cần nhiều hơn 100 DTU cho CPU, bộ nhớ hoặc I / O, thì bạn đã phải trả một cái giá Đặc biệt chỉ cho kích thước cơ sở dữ liệu. Với những thay đổi mới, giờ đây bạn có thể có cơ sở dữ liệu lên đến 1TB trong lớp Tiêu chuẩn; bạn chỉ phải trả thêm dung lượng lưu trữ. Bộ nhớ hiện đang được thanh toán ở mức $ 0,085 / GB trong thời gian xem trước. Việc tăng từ kích thước bao gồm 250GB lên 1TB sẽ tăng thêm 774GB với chi phí $ 65,79 mỗi tháng.
Kích thước DTU xem trước Tiêu chuẩn mới hỗ trợ các tùy chọn 200, 400, 800, 1.600 và 3.000 DTU. Nếu bạn có khối lượng công việc cơ sở dữ liệu SQL Server ràng buộc CPU nhiều hơn I / O, các tùy chọn cấp Chuẩn này có khả năng giúp bạn tiết kiệm rất nhiều tiền; tuy nhiên, nếu khối lượng công việc của bạn bị ràng buộc I / O, thì cấp Premium sẽ hoạt động tốt hơn so với cấp Standard.
Tôi quyết định thử hai khối lượng công việc khác nhau để xem mức độ Tiêu chuẩn và Cao cấp khác nhau như thế nào so với nhau. Tôi muốn tạo thử nghiệm đơn giản và có thể tái tạo để những người khác có thể thử xác nhận cho chính họ. Đối với thử nghiệm đầu tiên của tôi, tôi muốn tạo ra một kết hợp tốt giữa CPU và I / O. Tôi đã hy vọng rằng tôi sẽ đẩy nhiều CPU hơn I / O và có thể cho thấy rằng tầng Tiêu chuẩn mở rộng sẽ hoạt động tốt hơn tầng Cao cấp có cùng kích thước DTU. Tôi đã không nhận được chính xác kết quả mà tôi mong đợi.
Để thiết lập bản trình diễn này, tôi đã tạo một bảng có ba cột GUID, chèn 1 triệu hàng và sau đó cập nhật hai trong ba cột bằng ID mới. Mã mẫu bên dưới:
CREATE TABLE dbo.TestTable ( Table_id UNIQUEIDENTIFIER DEFAULT NEWID(), Customer_id UNIQUEIDENTIFIER DEFAULT NEWID(), Cust_Name VARCHAR(40) DEFAULT CAST(NEWID() AS VARCHAR(40)) ); SET NOCOUNT ON; GO INSERT INTO dbo.TestTable DEFAULT VALUES; GO 1000000 CREATE CLUSTERED INDEX [ClustTestTable] ON [dbo].[TestTable] ( [Table_id] ASC, [Customer_id] ASC ); SET STATISTICS TIME ON; UPDATE TestTable SET Table_id = NEWID(), Customer_id = NEWID();
Khi tôi chạy qua một loạt các bài kiểm tra, hiệu suất được cải thiện đều đặn trong bậc Tiêu chuẩn cho đến khi tôi chuyển đến tùy chọn S12, kỳ lạ thay, CPU và thời gian đã trôi qua tăng lên. Tôi đã chạy thử nghiệm nhiều lần và S12 liên tục là 54 giây. Rõ ràng là với thử nghiệm đầu tiên của tôi, rằng lớp Cao cấp hoạt động tốt hơn so với lớp Tiêu chuẩn. Ví dụ:S9 và P2 có thời gian gần nhất, tuy nhiên kích thước DTU cho Tiêu chuẩn là 1.600 so với 250 cho P2. Bài kiểm tra này thiên về khả năng I / O. Biểu đồ bên dưới hiển thị kích thước, mức DTU, chi phí, thời gian CPU, thời gian đã trôi qua và thời gian tính bằng giây cho mỗi bài kiểm tra:
Khi các bài kiểm tra đang được thực hiện, tôi quan sát thấy trong bảng điều khiển màn hình rằng phần trăm I / O dữ liệu và phần trăm I / O nhật ký là động lực đằng sau phần trăm DTU. Biểu đồ sau là từ một cuộc chạy với cơ sở dữ liệu S4:
Sau đó, tôi quyết định thử một loạt bài kiểm tra khác sẽ nặng hơn về CPU. Đối với thử nghiệm đó, tôi đã sử dụng tập lệnh sau:
SET STATISTICS TIME ON; SELECT SUM(CONVERT(BIGINT, t1.object_id) + CONVERT(BIGINT, t2.object_id) + CONVERT(BIGINT, t3.object_id) + CONVERT(BIGINT, t4.object_id)) FROM sys.objects t1 CROSS JOIN sys.objects t2 CROSS JOIN sys.objects t3 CROSS JOIN sys.objects t4;
Những gì tôi quan sát được trong bảng điều khiển màn hình trong loạt thử nghiệm này là tỷ lệ phần trăm CPU là trình điều khiển duy nhất của tỷ lệ DTU. Khi tôi trải qua một loạt bài kiểm tra ở bậc Tiêu chuẩn, bài kiểm tra dường như ổn định ở khoảng 27 giây và bắt đầu ở kích thước S4. Điều làm tôi ngạc nhiên là S4 ở 200 DTU mất 27 giây để hoàn thành và P2 tương ứng ở 250 DTU mất 38 giây; P4 ở 500 DTU tương đương hơn. Nếu chúng ta nhìn vào sự chênh lệch chi phí cho bản demo này, một chiếc S4 trong khi xem trước chỉ có giá 150,01 đô la, trong khi một chiếc P4 có giá 1,860 đô la; S4 tiết kiệm chi phí chỉ hơn 1.700 đô la. Hãy tưởng tượng rằng một P2 ở 250 DTU đã hoạt động như chúng ta đã mong đợi; P2 có giá 930 đô la và vẫn đắt hơn 780 đô la so với S4.
Kết quả đầy đủ của tất cả các bài kiểm tra trong bản trình diễn thứ hai được bao gồm trong biểu đồ sau:
Không giống như bản demo đầu tiên, điều này là do CPU điều khiển 100%. Tôi đã cố gắng bao gồm một tham gia chéo bổ sung, nhưng bản trình diễn sau đó mất hàng giờ mỗi phiên thay vì vài phút. Đối với thử nghiệm trong tương lai, tôi sẽ cố gắng đưa ra một vài tình huống bổ sung để đẩy khối lượng công việc OLTP thực tế hơn; một cái có CPU cao hơn và một cái có nhiều ràng buộc I / O hơn, và sau đó là sự pha trộn tốt của cả hai.
Bạn có thể thấy từ biểu đồ bên dưới rằng, trong lần chạy này với cơ sở dữ liệu S4, CPU đã tăng đột biến ở mức gần 50%, trong khi tỷ lệ phần trăm DTU khớp chính xác:
Từ hai khối lượng công việc khác nhau mà tôi đã thử nghiệm, rõ ràng là nếu bạn có bất kỳ khối lượng công việc I / O đáng kể nào, thì bạn sẽ cần đến cấp Premium, nhưng nếu khối lượng công việc của bạn chủ yếu bị ràng buộc bởi CPU mà không có bất kỳ nhu cầu I / O đáng kể nào, thì càng cao Bậc tiêu chuẩn có thể giúp bạn tiết kiệm đáng kể so với bậc Cao cấp.
Nếu bạn đang cân nhắc chuyển sang Cơ sở dữ liệu Azure SQL, máy tính DTU là một nơi tuyệt vời để bắt đầu tìm hiểu về điểm bắt đầu cho việc định cỡ; tuy nhiên, tại thời điểm viết bài, máy tính DTU không tính đến bậc Tiêu chuẩn mở rộng. Điều tuyệt vời về máy tính DTU là nó sẽ phân tích việc sử dụng CPU, IOP và nhật ký để cho bạn biết yếu tố thúc đẩy cho đề xuất cấp DTU là gì. Ví dụ:tôi đã chạy bản trình diễn cuối cùng trên máy ảo 4 vCPU, 4GB và máy tính DTU đề xuất P2. Khi tôi chọn 'xem thêm chi tiết,' tôi nhận được các thông báo sau.
Cấp dịch vụ / Cấp hiệu suất cho CPU - Chỉ dựa trên việc sử dụng CPU, chúng tôi khuyên bạn nên di chuyển khối lượng công việc SQL Server của mình sang Premium - P2. Bậc dịch vụ / Cấp hiệu suất này sẽ bao phủ khoảng 100,00% mức sử dụng CPU của bạn.
Bậc dịch vụ / Cấp hiệu suất cho Iops - Chỉ dựa trên việc sử dụng Iops, chúng tôi khuyên bạn nên di chuyển khối lượng công việc SQL Server của mình sang Cơ bản. Cấp dịch vụ / Cấp hiệu suất này sẽ bao phủ khoảng 89,92% việc sử dụng Iops của bạn.
LƯU Ý:Có khoảng 10,08% khối lượng công việc của bạn rơi vào Cấp dịch vụ / Cấp hiệu suất cao hơn. Sau khi di chuyển cơ sở dữ liệu của bạn sang Azure, bạn nên đánh giá hiệu suất của cơ sở dữ liệu của mình bằng cách sử dụng hướng dẫn được đề cập trong phần thông tin ở trên.
Cấp dịch vụ / Cấp hiệu suất cho nhật ký - Chỉ dựa trên việc sử dụng Nhật ký, chúng tôi khuyên bạn nên di chuyển khối lượng công việc Máy chủ SQL của mình sang Cơ bản. Cấp dịch vụ / Cấp hiệu suất này sẽ bao phủ khoảng 100,00% việc sử dụng Nhật ký của bạn.
Vì tôi biết khối lượng công việc này có nhiều ràng buộc về CPU, nên nếu tôi không thể điều chỉnh khối lượng công việc để giảm yêu cầu CPU, thì tôi có sẵn tối đa 3.000 DTU trong cấp Chuẩn. Thay vì chi 930 đô la mỗi tháng cho P2 với 250 DTU, S4 với 200 DTU với 150 đô la mỗi tháng (hoặc S6 với 400 DTU với giá 300,02 đô la mỗi tháng) sẽ là một lựa chọn kinh tế hơn nhiều.
Tóm lại, có những công cụ có sẵn để giúp bạn xác định điểm khởi đầu tốt cho kích thước của quá trình di chuyển Cơ sở dữ liệu Azure SQL của bạn, tuy nhiên, phương pháp tốt nhất tuyệt đối là kiểm tra khối lượng công việc của bạn. Di chuyển bản sao của cơ sở dữ liệu sản xuất của bạn, nắm bắt khối lượng công việc sản xuất và phát lại khối lượng công việc đó trên Cơ sở dữ liệu Azure SQL sẽ giúp bạn hiểu rõ hơn về kích thước DTU mà bạn thực sự cần.