Tại sao máy chủ Azure SQL của tôi quá chậm?


10

Chúng tôi hiện có một máy ảo rất yếu và đang đề xuất chuyển sang máy ảo Azure với thông số kỹ thuật tốt hơn. Vấn đề là, máy ảo Azure chậm hơn nhiều so với máy ảo gốc mặc dù nó có thông số kỹ thuật cao hơn.

Máy chủ ban đầu là máy ảo 2 lõi với 2GB bộ nhớ cũng là máy chủ web. Nó đang chạy Microsoft SQL Server Web Edition 2008 R2 và vì máy chủ này được sử dụng cho những thứ khác, chúng tôi đã phải giới hạn bộ nhớ máy chủ tối đa trong SQL Server là 512MB .

Máy chủ mới là máy ảo 4 lõi với 7GB bộ nhớ chỉ là máy chủ cơ sở dữ liệu. Nó đang chạy Microsoft SQL Server Standard Edition 2008 R2 và chúng tôi đã không giới hạn dung lượng bộ nhớ mà SQL Server có thể sử dụng.

Đây là một trong hai máy chủ được thiết lập trong môi trường nhân đôi nhưng cơ sở dữ liệu mà tôi đang chạy thử nghiệm không được nhân đôi. Các cơ sở dữ liệu khác trên máy chủ này hiện không nhận được nhiều lưu lượng truy cập (trên thực tế, Activity Monitor cho thấy không có hoạt động nào trên các DB khác trong khi tôi đang chạy các thử nghiệm này).

Tôi nhận ra rằng một vấn đề với Azure VM là các ổ đĩa cứng là tài nguyên mạng nên sẽ là nguồn chậm nhưng vẫn chậm hơn ngay cả khi có 0 lần đọc vật lý được hiển thị trong thống kê IO.

Tôi đã làm theo lời khuyên điều chỉnh trên trang này trên Azure VM bao gồm tước các đĩa (hai đĩa trên mỗi ổ đĩa) và đặt các tệp nhật ký và dữ liệu trên các ổ riêng biệt.

Điều duy nhất tôi chưa làm là cho phép nén trang, hạn chế tự động phát triển trên cơ sở dữ liệu và di chuyển nhật ký lỗi máy chủ SQL và theo dõi các thư mục tệp vào đĩa dữ liệu. Tôi cũng chưa làm điều đó trên máy chủ cũ.

Máy chủ cũ không thực hiện điều chỉnh này và các tệp nhật ký và dữ liệu nằm trên cùng một ổ đĩa không bị sọc.

Cơ sở dữ liệu trên máy chủ hiện tại là 65 GB (45 dữ liệu và 20 nhật ký), quá lớn để chuyển sang máy chủ mới, vì vậy tôi đang thử nghiệm trên một DB nhỏ hơn (6 dữ liệu và 13,5 nhật ký)

Kết quả trên máy chủ cũ là CPU time = 1311 ms, elapsed time = 1057 ms.và trên máy chủ mới CPU time = 1281 ms, elapsed time = 2525 ms. Đó chỉ là một lần chạy nhưng kết quả là đại diện cho những gì tôi thường thấy.

Máy chủ mới dường như liên tục có thời gian trôi qua lâu hơn đáng kể so với thời gian CPU. Đó có phải là một vấn đề và tôi có thể làm gì để theo dõi những gì gây ra nó không?

Tôi có thể thực hiện các bước nào khác để tìm hiểu lý do tại sao máy chủ này hoạt động chậm như vậy khi có vẻ như nó phải nhanh hơn máy chủ cũ?


1
Tối đa 1? Bạn đã so sánh các kế hoạch thực hiện, lấy trước và sau khi thống kê chờ và kiểm tra chặn chưa?
Aaron Bertrand

1
Có bao nhiêu ổ dữ liệu? Với lưu trữ blob trang tiêu chuẩn, mỗi ổ đĩa được giới hạn ở mức thấp hơn 300 IOPS trong tầng cơ bản hoặc 500 trong tiêu chuẩn, ít hơn nhiều so với đĩa quay tại chỗ. Bắt buộc phải có càng nhiều ổ đĩa (vhd) càng tốt để tối đa hóa IOPS và băng thông. Bạn có thể sử dụng Windows Storage Spaces để tránh phải tạo một tệp dữ liệu riêng biệt trên mỗi ổ đĩa.
Dan Guzman

Máy chủ mới có 4 VHD được sọc vào hai ổ đĩa vì vậy tôi có 1000 IOPS cho nhật ký và 1000 IOPS cho dữ liệu.
Steve Kaye

Bộ lưu trữ blog trang tiêu chuẩn VHD chỉ cung cấp băng thông khoảng 30MB / giây do điều tiết nên chỉ tổng hợp 60MB / giây. Xem xét việc tạo 14 VHD dữ liệu với tốc độ lên tới 420MB / giây và phân loại tất cả.
Dan Guzman

Tôi chỉ có thể có 8 đĩa vì đây là phiên bản A3 nên tôi phải nâng cấp lên A4 để thực hiện với giá gấp đôi. Tôi không nghĩ rằng đây là sự cố ổ đĩa mặc dù các bài kiểm tra trên đều có 0 lần đọc vật lý được liệt kê trên số liệu thống kê IO.
Steve Kaye

Câu trả lời:


2

Để biết giá trị của nó, tôi đã kết thúc việc thay đổi VM trong Azure từ loại A sang loại D và sau đó gắn một đĩa khác và di chuyển TEMPDB sang đĩa đó. Vì vậy, VM cuối cùng của tôi bây giờ là một Tiêu chuẩn D2 với RAM 7 GB và ba đĩa dữ liệu, một cho các tệp MDF, một cho các tệp LDF và đĩa TEMPDB mới.

Tôi đã từ bỏ việc cố gắng hiểu với A3 một số điều bạn đã đề cập và chỉ đơn giản là nâng cấp máy ảo. Tôi thậm chí đã đi từ A2 đến A3 và mặc dù tôi đã tìm thấy một số cải tiến, cuối cùng tôi đã thay đổi thành một máy ảo D2.

Trong tài liệu mà bạn đã nêu, Microsoft khuyến nghị D3 cho Enterprise Edition hoặc D2 cho Web hoặc Standard Edition và sử dụng Premium Storage, trong số những thứ khác trong danh sách kiểm tra ở đầu tài liệu.

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.